最近更新了wordpress最新版本4.4,更新啥功能我也不知道,知道了我也用不上,但是發現代碼里面多出了好幾項功能鏈接,我也用不上。所以我們就把他移除掉,主要是多了REST API(通過REST API可以很輕松的獲取網站的數據)、wp-json鏈接、embeds功能(embeds功能可以允許更方便的引用第三方資源)、wp-embed.min.js文件。
用不上我們還加載它做什么,還影響網站的讀取速度,那么我們就來說說如何禁止掉。
先說說禁用REST API、移除wp-json鏈接的方法,將以下代碼添加到主題functions.php文件中即可禁用REST API并去除head里面輸出的鏈接信息:
- 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?);
禁用embeds其實還是比較復雜(代碼比較多),官方甚至為此開發了一個插件,大家可以使用插件來禁用:Disable Embeds,如果不想使用插件,那就將插件里面的代碼復制到主題的functions.php文件即可。
- function?disable_emojis()?{
- remove_action(?'wp_head',?'print_emoji_detection_script',?7?);
- remove_action(?'admin_print_scripts',?'print_emoji_detection_script'?);
- remove_action(?'wp_print_styles',?'print_emoji_styles'?);
- remove_action(?'admin_print_styles',?'print_emoji_styles'?);
- remove_filter(?'the_content_feed',?'wp_staticize_emoji'?);
- remove_filter(?'comment_text_rss',?'wp_staticize_emoji'?);
- remove_filter(?'wp_mail',?'wp_staticize_emoji_for_email'?);
- add_filter(?'tiny_mce_plugins',?'disable_emojis_tinymce'?);
- }
- add_action(?'init',?'disable_emojis'?);
- function?disable_emojis_tinymce(?$plugins?)?{
- if?(?is_array(?$plugins?)?)?{
- return?array_diff(?$plugins,?array(?'wpemoji'?)?);
- }?else?{
- return?array();
- }
- }
- function?disable_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?);
- function?disable_embeds_tiny_mce_plugin(?$plugins?)?{?return?array_diff(?$plugins,?array(?'wpembed'?)?);?}
- function?disable_embeds_rewrites(?$rules?)?{?foreach?(?$rules?as?$rule?=>?$rewrite?)?{?if?(?false?!==?strpos(?$rewrite,?'embed=true'?)?)?{?unset(?$rules[?$rule?]?);?}?}
- return?$rules;?}
- function?disable_embeds_remove_rewrite_rules()?{?add_filter(?'rewrite_rules_array',?'disable_embeds_rewrites'?);?flush_rewrite_rules();?}
- register_activation_hook(?__FILE__,?'disable_embeds_remove_rewrite_rules'?);
- function?disable_embeds_flush_rewrite_rules()?{?remove_filter(?'rewrite_rules_array',?'disable_embeds_rewrites'?);?flush_rewrite_rules();?}
- register_deactivation_hook(?__FILE__,?'disable_embeds_flush_rewrite_rules'?);
每一次更新wordpress版本都會多出一些東西,例如之前的emoji,并且都在頁面上輸入內容,或多或少都會影響速度,我們博客基本就是更新下文章而已,搞的太負責了未免多此一舉,用不上就干掉REST API和embeds,為了用戶體驗,讓網站更快的展示我們碼的字就OK了。