禁用 WordPress Auto Embeds 功能,加快页面解析速度

有没有想过,只需要在文章中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很方便。

WordPress 的 Easy Embeds 功能

这个就是 WordPress 的 Easy Embeds 的功能,可以让我们直接发布一个 URL(需要单独一行,纯文本,不带链接才行),就能把这个 URL 中的视频显示到博客上,并且会根据博客的布局调整视频的大小。

比如,在文章中直接输入这个 TED 地址:

https://www.ted.com/talks/matt_mullenweg_why_working_from_home_is_good_for_business

WordPress 就会自动把这个 URL 转化成 TED 对应页面的视频:

如果你是用 WordPress 古腾堡编辑器,那么在古腾堡编辑器可以看到目前支持的自动嵌入服务:

点击上图的按钮,点击对应的按钮:

输入链接,然后点击潜入,也可以一键嵌入:

禁用 WordPress Auto Embeds 功能

从腾堡编辑器默认的潜入按钮, WordPress Easy Embeds 支持的自动嵌入网站大部分都是国外的网站,对于我们用处也不大,如果我们想禁用 Auto Embeds (oEmbed) 功能怎么办呢?

我们发现在 WP_Embed Class 中的构造函数中有如下的 filter:

代码语言:javascript
复制
add_filter( 'the_content', array( $this, 'autoembed' ), 8 );

所以我们只需要把这个 fliter 删除即可,但是我们不能使用 this 这个变量,需要用到 wp_embed 这个全局变量:

代码语言:javascript
复制
// Disable auto-embeds for WordPress >= v3.5
remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );