WordPress 4.4+ 禁用 Embeds 功能

WordPress 4.4+ 移除嵌入脚本wp-embed.min.js
WordPress 4.4+ 禁用 Embeds

WordPress 4.4 增加了很多功能,其中包括embeds,它允许你方便的引用其他的WordPress 文章以及嵌入视频等第三方资源。

oEmbed 是一种允许第三方站点上 URL 的嵌入式表示的格式……当用户发布一个到某资源的链接时,[它]允许网站显示此嵌入式内容(比如照片或视频),无需直接解析该资源。

—– 百度百科

那么我们到底需不需要此功能呢?实际上这个功能我们可能根本用不到,而且还影响了网站的加载速度,WordPress还默认加载了JavaScript脚本wp-embed.min.js,除非:

  • 你想要别人的博客嵌入你的博客文章内容;
  • 或者你喜欢嵌入别的博客文章内容;

禁用 Embeds 方法

  • 使用插件禁用 Embeds 功能
  • 使用代码禁用 Embeds 功能

使用插件禁用 Embeds

WordPress 后台搜索“禁用嵌入” 安装 : Disable Embeds

  • 阻止他人嵌入您的站点。
  • 阻止您嵌入其他非白名单站点。
  • 禁用与该功能相关的所有JavaScript。
  • 在新的块编辑器中删除对WordPress嵌入块的支持。

代码禁用 Embeds 功能

移除wp-embed.min.js后,还需要在functions.php文件中禁用所有的WordPress默认的所有embeds功能。

function disable_embeds_code_init() {

      // Remove the REST API endpoint.
      remove_action( 'rest_api_init', 'wp_oembed_register_route' );

      // Turn off oEmbed auto discovery.
      add_filter( 'embed_oembed_discover', '__return_false' );

      // Don't filter oEmbed results.
      remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );

      // Remove oEmbed discovery links.
      remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );

      // Remove oEmbed-specific JavaScript from the front-end and back-end.
      remove_action( 'wp_head', 'wp_oembed_add_host_js' );

      // Remove all embeds rewrite rules.
      add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );

     // Remove filter of the oEmbed result before any HTTP requests are made.
      remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}

add_action( 'init', 'disable_embeds_code_init', 9999 );

或者:

只需要禁止 wp-embed.min.js 加载即可禁用在自己的博客文章中嵌入其他博客文章;从页脚中移除 从以上这段代码中可以看到,你可以用这种方式停止加载不需要的js文件。

function my_deregister_scripts(){
    wp_dequeue_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

发表评论

游客欢迎您123