WordPress在2.9以后的版本支持 embed
功能,例如直接在编辑器里输入Youtube或者Flickr的URL(不要给URL加上链接),WordPress能在页面直接生成控件调用Youtube视频播放器。以往这样的功能需要依靠插件实现,由于WordPress内置功能的出现,其他同类没有特色特殊功能的插件就可以下岗了。
但是在实践中我发现,在本地测试时,在编辑器中输入Youtube的URL以后,发布后的页面里面依然是文本形式的URL,而没有显示Youtube的播放器,这让我感到很疑惑。根据WordPress文档的说法,可以直接在URL前后加入 embed
标签,我尝试着加入 embed
标签后,在显示时变成了加上链接的URL,WordPress依然没有将Youtube的URL转化为播放器。
与此不同的是在生产环境中,我在位于美国的数个WordPress网站中加入Youtube的URL,均能在页面中显示Youtube控件。难道WordPress还能根据所在地区自动判断是否解析Youtube的URL转化为播放器?
经过对WordPress源文件的分析,得出了答案:WordPress在解析这个Youtube的URL时,会向Youtube请求获取该视频的宽度和高度、缩略图等信息,如果获取不成功,则不识别为Youtube播放器,自然就无法在页面中显示了。所以我在本地搭建的实验环境中自然无法识别Youtube的URL了,同理,国内的WordPress也都无法使用WordPress自带的简易方式直接添加Youtube视频。
有如下几种解决方法:
- 放弃Youtube,使用国内的优酷、土豆等。(建议配合我爱水煮鱼的WPJAM Video插件使用)
- 使用第三方Youtube插件
- 将网站放到能访问Youtube的地方,如Linode VPS(日本/美国)