WordPress 2.9 的 Easy Embeds 功能
2010年01月20日
WordPress 2.9 的 Easy Embeds 功能
有没有想过,只需要在日志中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很 Cool,这个就是 WordPress 2.9 的 Easy Embeds 的功能,它就是让你直接发布一个 URL(需要单独一行,纯文本,不带链接才行),就能把这个 URL 中的视频显示到博客上,并且会根据博客的布局调整视频的大小。
比如,在日志中直接输入这个 flickr 地址:
http://www.flickr.com/photos/30788945@N08/4021186721/
WordPress 就会自动把这个 URL 转化成 Flickr 该页的照片:

当然这个需要你的 WordPress 的 “Auto-embeds” 打开。

启用 WordPress 的 Easy Embeds 功能
如果你的博客没有启用这项功能,那么还可以使用 [embed] 这个 shortcode 来显示图片,使用 [embed] shortcode 就不再需要把链接放到独立的一行了。
[embed]http://www.flickr.com/photos/30788945@N08/4021186721/[embed]
oEmbed
这个 Easy Embeds 功能主要是由 oEmbed 驱动的,oEmbed 是一种站点 A (比如你的博客)向站点 B (比如 YouTube)去请求嵌入内容(比如视频)的 HTML 代码的协议。
oEmbed 设计出来是为了嵌入媒体网站的内容的时候避免复制和粘贴 HTML 代码,它支持视频,图片,文本等等更多。
非常失望的是,国内基本没有一家 Web 2.0 应用支持这一协议。
现在 WordPress 支持的网站
并不是所有的网站都支持的,现在 WordPress 支持以下网站:
- YouTube
- Vimeo
- DailyMotion
- blip.tv
- Flickr (both videos and images)
- Viddler
- Hulu
- Qik
- Revision3
- Scribd
- Photobucket
- PollDaddy
- Google Video
- WordPress.tv (only VideoPress-type videos for the time being)
所以这些网站的视频和图片,你只需贴入 URL,WordPress 就会帮你自动转换成可以查看的图片或者网址。
oEmbed Discovery
什么是 oEmbed discovery?媒体服务提供商在 head 添加一部分代码告诉程序他们的 oEmbed provider 在哪里,这样就可以自动添加嵌入的内容而无需事先处理。但是 WordPress 默认是关闭直接嵌入支持 oEmbed discovery 网站的内容,这样做也是为了防止一些网站可能存在恶意代码的风险,但是如果你能保证你引用网站,那么你可以通过以下代码开启 WordPress 的 oEmbed discovery,这样只要贴入支持 oEmbed Discvery 网站的 URL 就会自动嵌入内容。
如何支持更多的网站
添加支持 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。
目前我已经实现了优酷和土豆,又拍的网站链接很奇怪,需要使用他们的 API 才能获取图片的 URL,并且 API 还需要 API Key,无比繁琐,就没有心情去整理了:
9 条评论 添加你的评论 →

1. Jacky | 2010:01:20 - 07:55:51 | #
真是好东西!试用一下!介意我把文章转了不?
2. Denis | 2010:01:20 - 11:26:17 | #
不行!
3. myst | 2010:01:20 - 10:14:48 | #
大多数都要翻墙啊……
4. zwwooooo | 2010:01:20 - 10:48:03 | #
相当方便的功能,可惜我们在墙内!
5. bolo | 2010:01:20 - 10:57:52 | #
差不多都是墙外网站
6. Dianso | 2010:01:20 - 22:54:42 | #
是啊,都是些基本没上过的网站。
7. Louis | 2010:02:01 - 23:45:40 | #
国内的站点死守web1.0到终老了
8. 漠寒 | 2010:02:10 - 04:02:32 | #
Auto-embeds
这个在博客设置的哪里能打开么?
9. 漠寒 | 2010:02:10 - 04:17:25 | #
哦,我明白了,就是自动嵌入啊。