WORDPRESS4.4版本以后禁用wp-embed的正确方法

得知WordPress 4.4版本更新以来,主题无缘无故被新增了个wp-embed.js,其实表面上是增加了一个js文件,但实际的逻辑不止如此,鉴于这个功能实在没什么作用,我们就来把它去除。

WORDPRESS4.4版本以后禁用wp-embed的正确方法

庆幸的是WP官方为此开发了一个插件,大家可以使用插件来禁用:Disable Embeds,如果不想安装这个插件,你也可以将下面的代码复制到主题的functions.php文件即可。

  1. /**
  2. * Disable embeds
  3. */
  4. if ( !function_exists( ‘disable_embeds_init’ ) ) :
  5. function disable_embeds_init(){
  6. global $wp;
  7. $wp->public_query_vars = array_diff($wp->public_query_vars, array(’embed’));
  8. remove_action(‘rest_api_init’, ‘wp_oembed_register_route’);
  9. add_filter(’embed_oembed_discover’, ‘__return_false’);
  10. remove_filter(‘oembed_dataparse’, ‘wp_filter_oembed_result’, 10);
  11. remove_action(‘wp_head’, ‘wp_oembed_add_discovery_links’);
  12. remove_action(‘wp_head’, ‘wp_oembed_add_host_js’);
  13. add_filter(‘tiny_mce_plugins’, ‘disable_embeds_tiny_mce_plugin’);
  14. add_filter(‘rewrite_rules_array’, ‘disable_embeds_rewrites’);
  15. }
  16. add_action(‘init’, ‘disable_embeds_init’, 9999);
  17. function disable_embeds_tiny_mce_plugin($plugins){
  18. return array_diff($pluginsarray(‘wpembed’));
  19. }
  20. function disable_embeds_rewrites($rules){
  21. foreach ($rules as $rule => $rewrite) {
  22. if (false !== strpos($rewrite, ’embed=true’)) {
  23. unset($rules[$rule]);
  24. }
  25. }
  26. return $rules;
  27. }
  28. function disable_embeds_remove_rewrite_rules(){
  29. add_filter(‘rewrite_rules_array’, ‘disable_embeds_rewrites’);
  30. flush_rewrite_rules();
  31. }
  32. register_activation_hook(__FILE__, ‘disable_embeds_remove_rewrite_rules’);
  33. function disable_embeds_flush_rewrite_rules(){
  34. remove_filter(‘rewrite_rules_array’, ‘disable_embeds_rewrites’);
  35. flush_rewrite_rules();
  36. }
  37. register_deactivation_hook(__FILE__, ‘disable_embeds_flush_rewrite_rules’);
  38. endif;

人已赞赏
WordPress建站

如何隐藏WordPress后台的显示选项和帮助选项卡

2021-3-10 7:14:09

WordPress建站

WORDPRESS教程:禁止访问wp-comments-post.php防垃圾评论

2021-3-10 7:14:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索