使用 WordPress 的 Easy Embeds 功能

WordPress 的 Easy Embeds 功能

有没有想过,只需要在日志中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很 Cool,这个就是 WordPress 的 Easy Embeds 的功能,让你直接发布一个 URL(需要单独一行,纯文本,不带链接才行),就能把这个 URL 中的视频显示到博客上,并且会根据博客的布局调整视频的大小。

比如,在日志中直接输入这个 instagram 地址:

http://instagram.com/p/TSZleFg3A3/

WordPress 就会自动把这个 URL 转化成 instagram 该页的照片和链接:

http://instagram.com/p/TSZleFg3A3/

这个就是 WordPress 2.9 引入的 Easy Embeds 功能,需要将 WordPress 的 “Auto-embeds” 的功能打开:
启用 WordPress 2.9 的 Easy Embeds 功能
到了 WordPress 3.5 版本之后,WordPress 就默认支持这个功能了,没有了上面的选项。

另外还可以使用 [embed] 这个 shortcode 来显示图片,使用 [embed] shortcode 就不再需要把链接放到独立的一行了。

[embed]http://instagram.com/p/TSZleFg3A3/[/embed]

oEmbed

这个 Easy Embeds 功能主要是由 oEmbed 驱动的,oEmbed 是一种站点 A (比如你的博客)向站点 B (比如 YouTube)去请求嵌入内容(比如视频)的 HTML 代码的协议。

oEmbed 设计出来是为了嵌入媒体网站的内容的时候避免复制和粘贴 HTML 代码,它支持视频,图片,文本等等更多。

oEmbed Discovery

什么是 oEmbed discovery?媒体服务提供商在 head 添加一部分代码告诉程序他们的 oEmbed provider 在哪里,这样就可以自动添加嵌入的内容而无需事先处理。

现在 WordPress Easy Embeds 支持的网站

并不是所有的网站都支持的,现在 WordPress 支持以下网站:

所以这些网站的视频和图片,你只需贴入 URL,WordPress 就会帮你自动转换成可以查看的图片或者视频。

WordPress 默认是关闭直接嵌入支持 oEmbed discovery 网站的内容,这样做也是为了防止一些网站可能存在恶意代码的风险,但是如果你能保证你引用网站,那么你可以通过以下代码开启 WordPress 的 oEmbed discovery,这样只要贴入支持 oEmbed Discvery 网站的 URL 就会自动嵌入内容。


add_filter( 'embed_oembed_discover', '__return_true' );

如何支持更多的网站

添加支持 oEmbed 协议的网站

只需要去调用 wp_oembed_add_provider() 函数就可以了,格式如下:


wp_oembed_add_provider( 'http://site.com/watchvideo/*', 'http://site.com/oembedprovider' );

添加不支持 oEmbed 协议的网站

添加不支持 oEmbed 协议的网站可能就比较麻烦点,需要使用 wp_embed_register_handler() 函数去注册一个 callback 函数去产生 HTML。

目前我已经实现了优酷和土豆:

http://v.youku.com/v_show/id_XNjY2ODM3NDI4_ev_1.html

标签:

热门文章