得知WordPress 4.4版本更新以来,主题无缘无故被新增了个wp-embed.js,其实表面上是增加了一个js文件,但实际的逻辑不止如此,鉴于这个功能实在没什么作用,我们就来把它去除。
庆幸的是WP官方为此开发了一个插件,大家可以使用插件来禁用:Disable Embeds,如果不想安装这个插件,你也可以将下面的代码复制到主题的functions.php文件即可。
- /**
- *Disableembeds
- */
- if(!function_exists(‘disable_embeds_init’)):
- functiondisable_embeds_init(){
- global$wp;
- $wp->public_query_vars=array_diff($wp->public_query_vars,array(’embed’));
- remove_action(‘rest_api_init’,‘wp_oembed_register_route’);
- add_filter(’embed_oembed_discover’,‘__return_false’);
- remove_filter(‘oembed_dataparse’,‘wp_filter_oembed_result’,10);
- remove_action(‘wp_head’,‘wp_oembed_add_discovery_links’);
- remove_action(‘wp_head’,‘wp_oembed_add_host_js’);
- add_filter(‘tiny_mce_plugins’,‘disable_embeds_tiny_mce_plugin’);
- add_filter(‘rewrite_rules_array’,‘disable_embeds_rewrites’);
- }
- add_action(‘init’,‘disable_embeds_init’,9999);
- functiondisable_embeds_tiny_mce_plugin($plugins){
- returnarray_diff($plugins,array(‘wpembed’));
- }
- functiondisable_embeds_rewrites($rules){
- foreach($rulesas$rule=>$rewrite){
- if(false!==strpos($rewrite,’embed=true’)){
- unset($rules[$rule]);
- }
- }
- return$rules;
- }
- functiondisable_embeds_remove_rewrite_rules(){
- add_filter(‘rewrite_rules_array’,‘disable_embeds_rewrites’);
- flush_rewrite_rules();
- }
- register_activation_hook(__FILE__,‘disable_embeds_remove_rewrite_rules’);
- functiondisable_embeds_flush_rewrite_rules(){
- remove_filter(‘rewrite_rules_array’,‘disable_embeds_rewrites’);
- flush_rewrite_rules();
- }
- register_deactivation_hook(__FILE__,‘disable_embeds_flush_rewrite_rules’);
- endif;