Wordpress 4.4 最近更新了,目前WPCOM的主题兼容情况良好,不过在此次更新中,新增的功能REST API和embeds会在HTML代码中输出一些链接和JS文件,但是大部分网站并不一定用得上,所以为了提高网站加载速度建议去除,下面来介绍下禁用或者去除的方法。REST API 禁用add_filter('rest_enabled',...
WordPress 4.4 最近更新了,目前WPCOM的主题兼容情况良好,不过在此次更新中,新增的功能REST API和embeds会在HTML代码中输出一些链接和JS文件,但是大部分网站并不一定用得上,所以为了提高网站加载速度建议去除,下面来介绍下禁用或者去除的方法。
REST API 禁用
add_filter('rest_enabled','_return_false'); add_filter('rest_jsonp_enabled','_return_false'); remove_action('wp_head','rest_output_link_wp_head',10); remove_action('wp_head','wp_oembed_add_discovery_links',10);
将以上代码加入主题functions.php文件中,即可禁用REST API,不再在页面输出wp-json链接。
禁用embeds
禁用embeds可以移除页面输出的wp-embed.min.js文件,不过禁用embeds还是比较复杂(代码比较多),官方甚至为此开发了一个插件,大家可以使用插件来禁用:Disable Embeds,如果不想使用插件,那就将插件里面的代码复制到主题的functions.php文件即可。
代码如下:
functiondisable_embeds_init(){ /*@varWP$wp*/ global$wp; //Removetheembedqueryvar. $wp->public_query_vars=array_diff($wp->public_query_vars,array( 'embed', )); //RemovetheRESTAPIendpoint. remove_action('rest_api_init','wp_oembed_register_route'); //TurnoffoEmbedautodiscovery. add_filter('embed_oembed_discover','__return_false'); //Don'tfilteroEmbedresults. remove_filter('oembed_dataparse','wp_filter_oembed_result',10); //RemoveoEmbeddiscoverylinks. remove_action('wp_head','wp_oembed_add_discovery_links'); //RemoveoEmbed-specificJavaScriptfromthefront-endandback-end. remove_action('wp_head','wp_oembed_add_host_js'); add_filter('tiny_mce_plugins','disable_embeds_tiny_mce_plugin'); //Removeallembedsrewriterules. add_filter('rewrite_rules_array','disable_embeds_rewrites'); } add_action('init','disable_embeds_init',9999); /** *Removesthe'wpembed'TinyMCEplugin. * *@since1.0.0 * *@paramarray$pluginsListofTinyMCEplugins. *@returnarrayThemodifiedlist. */ functiondisable_embeds_tiny_mce_plugin($plugins){ returnarray_diff($plugins,array('wpembed')); } /** *Removeallrewriterulesrelatedtoembeds. * *@since1.2.0 * *@paramarray$rulesWordPressrewriterules. *@returnarrayRewriteruleswithoutembedsrules. */ functiondisable_embeds_rewrites($rules){ foreach($rulesas$rule=>$rewrite){ if(false!==strpos($rewrite,'embed=true')){ unset($rules[$rule]); } } return$rules; } /** *Removeembedsrewriterulesonpluginactivation. * *@since1.2.0 */ 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'); /** *Flushrewriterulesonplugindeactivation. * *@since1.2.0 */ 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');