wrav / oembed
一个简单的插件,可以从网站上提取媒体信息,例如YouTube视频、Twitter状态或博客文章。
Requires
- ext-dom: *
- craftcms/cms: ^4.0 | ^5.0
- embed/embed: ^v4.4
Requires (Dev)
- roave/security-advisories: dev-latest
- dev-master
- 3.1.1
- 3.1.0
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- v2.x-dev
- 2.3.2
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- v1.x-dev
- 1.13.19
- 1.3.18
- 1.3.17
- 1.3.15
- 1.3.13
- 1.3.12
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.0
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-v3-php74-support
- dev-feature/fallback-support
- dev-hotfix/vimeo-craft-v3
- dev-feature/craft-cloud-support
- dev-feature/gql-params
- dev-feature/embed-v4
- dev-feature/caching-issue
- dev-bugfix/issue-113
- dev-feature/craft-v4
- dev-embed4
- dev-alpha
- dev-feature/gdpr
- dev-release/1.3.0
- dev-feature/php7
- dev-feature/table-preview
- dev-feature/query-param-override
- dev-release/1.2.1
- dev-release/1.2.0
- dev-feature/cp-trigger
- dev-feature/autoplay
- dev-feature/recursive-bug
- dev-feature/updated-embed-engine
- dev-hotfix/libsyn
- dev-feature/craft-v3.1
This package is auto-updated.
Last update: 2024-09-12 22:23:52 UTC
README
一个简单的插件,可以从网站上提取媒体信息,例如YouTube视频、Twitter状态或博客文章。
需求
此插件需要Craft CMS 3.0.0-beta.23或更高版本。
如果您需要CraftCMS 2.5的支持,请使用之前的版本1.0.4,这是CraftCMS 2.5的最新版本。
版本
关于URL问题的快速提示
许多网站,如Vimeo,正在限制对标准URL(例如 www.vimeo.com)的访问,有时需要使用嵌入URL(例如,player.vimeo.com)来检索oEmbed数据。
您通常可以通过视频和oEmbed支持的网站的“分享”选项找到嵌入URL。虽然插件提供了一般丰富的内容作为后备,但它的真正潜力来自于利用oEmbed协议和内容提供商的相关元数据。
如果您遇到问题,请检查提供者或页面是否提供嵌入版本,并使用该URL以确保您访问的是最准确的数据。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require wrav/oembed
-
在控制面板中,转到设置 → 插件,并为oEmbed点击“安装”按钮。
使用oEmbed
要使用,只需在您的字段类型上调用以下方法之一
{{ entry.field.valid }} # Get the embed object
{{ entry.field.render }} # Renders HTML
{{ entry.field.embed }} # Get the embed object
{{ entry.field.media }} # Get the embed object
我们还提供将oEmbed作为Twig变量的选项
{{ craft.oembed.valid(url, options, cacheFields) }}
{{ craft.oembed.render(url, options, cacheFields) }}
{% set embed = craft.oembed.embed(url, options, cacheFields) %}
{% set media = craft.oembed.media(url, options, cacheFields) %}
更新嵌入URL,例如自动播放、rel、mute参数。这允许您支持提供者可能尚未支持的功能
{{
entry.oembed_field.render({
params: {
autoplay: 1,
rel: 0,
mute: 0,
loop: 1,
autopause: 1,
},
attributes: {
title: 'Main title',
'data-title': 'Some other title',
}
})
}}
我们仍然支持旧的遗留方法,但这种方法可能在未来的版本中弃用。
{{
entry.oembed_field.render({
autoplay: 1,
rel: 0,
mute: 0,
loop: 1,
autopause: 1,
})
}}
通过以下方法可以在iframe上更新宽度和高度属性,但是CSS仍然建议用于调整iframe的大小。
{{
entry.oembed_field.render({
width: 640,
height: 480,
})
}}
或
{{
entry.oembed_field.render({
attributes: {
width: 640,
height: 480,
}
})
}}
您可以使用以下示例访问额外的媒体信息,这些是默认键。
entry.field.media.title
entry.field.media.description
entry.field.media.url
entry.field.media.type
entry.field.media.tags
entry.field.media.images
entry.field.media.image
entry.field.media.imageWidth
entry.field.media.imageHeight
entry.field.media.code
entry.field.media.width
entry.field.media.height
entry.field.media.aspectRatio
entry.field.media.authorName
entry.field.media.authorUrl
entry.field.media.providerName
entry.field.media.providerUrl
entry.field.media.providerIcons
entry.field.media.providerIcon
entry.field.media.publishedDate
entry.field.media.license
entry.field.media.linkedData
entry.field.media.feeds
您可以从数据数组中访问额外的媒体信息。这些将是snake_case,请注意。
{{ dump(entry.field.media.data) }}
更多嵌入信息可以在这里找到
缓存
默认情况下,插件将在oembed对象上缓存以下键。插件可以使用缓存prop参数缓存额外的缺失字段,该参数将接受一个字符串数组。
{{ entry.oembed_field.render( { width: 640, height: 480, }, [ 'cacheable_key' ] ) }}
默认键
- title
- description
- url
- type
- tags
- images
- image
- imageWidth
- imageHeight
- code
- width
- height
- aspectRatio
- authorName
- authorUrl
- providerName
- providerUrl
- providerIcons
- providerIcon
- publishedDate
- license
- linkedData
- feeds
GraphQL
我建议在插件设置菜单中启用缓存以加快API解析时间。
以下是一个名为“foobar”的Oembed字段的示例,以及如何从嵌入对象中访问属性。
{
entries {
id,
... on page_page_Entry {
foobar {
code,
providerUrl,
aspectRatio
}
}
}
}
致谢
最初在HutSix工作时构建,我后来获得了在这里继续开发的许可。
变更日志
更改可以在这里查看
支持
通过电子邮件、Discord或通过创建一个Github问题联系