WordPress奇怪的oEmbed嵌入功能


Wordpress oEmbed嵌入功能最近发现注册表中多了大量类似“_oembed_xxxx”的“key”项,而“value”值却是“{{unknown}}”。删除也没“看见”任何影响,但是会自动重新为每个日志ID生成。一度迷惑是换用子域名图床的问题,现在才悟到原来是启用了WordPress的oEmbed嵌入功能。


注册表“冗余”的“_oembed_xxxx”

注册表的“wp_postmeta”不断产生“冗余”的“_oembed_xxxx”:

meta-key:_oembed_

每篇日志都会产生一个“_oembed_xxxx”,直接删除对文章也没有任何影响。反而是删除一批,又会不断自动生成一批。


oEmbed嵌入惹得祸

折磨了好几天,也没有想明白。问题代码是“_oembed_xxxx”,应该是和嵌入功能有关。可是没有使用嵌入功能啊,图片虽然换到主机上,但是还是用外链的形式加入文章。整个网站只有一篇日志使用了优酷的视频,但是并没有使用oembed方式嵌入。
最迷惑的是,换用图片主机之前是没有。
偶然点击WordPress后台设置的“Media”媒体选项,这个选项除了第一次安装时清空所有项目外一直都没有“二次光临”。
突然发现多勾选了“Auto-embeds”:

When possible, embed the media content from a URL directly onto the page. For example: links to Flickr and YouTube.
对于某些网站(如 Flickr 和 YouTube 等),若您希望嵌入其内容,您可直接写下其页面的 URL。

不知道是什么时候误点击打开了这个选项,果断关闭之。再删除注册表的冗余“_oembed_xxxx”代码后再也没有“重生”。


奇怪的oEmbed嵌入功能

按照oEmbed嵌入功能说明应该是为了方便直接用url嵌入视频、图片等多媒体元素。但是并没有在文章中使用这样的功能,所以“_oembed_xxxx”的值是“{{unknown}}”,删除了也没有影响。
按照一般的理解,既然文章并没有嵌入多媒体元素,那么就不应该自动在数据库中生成嵌入数据啊?
搜索一下网络才知道对于oEmbed嵌入功能的讨论很多,一直以来都是安装初始就清空所有媒体设置,害的纠结好几天。

p.s.

WordPress 3.5默认已经开启oEmbed嵌入功能,取消了后台设置。
禁止oEmbed方法参见《WordPress禁止oembed嵌入功能