WordPress移除(wp_head)头部不必要的元素

建站教程 2021-11-02

以下内容都在主题的functions.php文件写入

1、移除WordPress版本信息

remove_action( 'wp_head', 'wp_generator' );

2、移除离线编辑器开放接口

remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );

3、移除WordPress头部加载DNS预获取

<link rel='dns-prefetch' href='//s.w.org' />

移除代码

function remove_dns_prefetch( $hints, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
        return array_diff( wp_dependencies_unique_hosts(), $hints );
    }

    return $hints;
}
add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );

4、移除emoji表情script和style

<script type="text/javascript">
            window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/wordpress.cc\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8"}};
            !function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,56826,8203,55356,56819),0,0),c=j.toDataURL(),b===c&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55358,56794,8205,9794,65039),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55358,56794,8203,9794,65039),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
        </script>
        <style type="text/css">
img.wp-smiley,
img.emoji {
    display: inline !important;
    border: none !important;
    box-shadow: none !important;
    height: 1em !important;
    width: 1em !important;
    margin: 0 .07em !important;
    vertical-align: -0.1em !important;
    background: none !important;
    padding: 0 !important;
}
</style>

移除

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

5、移除wp-json链接

<link rel='https://api.w.org/' href='http://wordpress.cc/wp-json/' />

移除

remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );

6、移除 wp-block-library-css 前端 CSS

function fanly_remove_block_library_css() {
    wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_enqueue_scripts', 'fanly_remove_block_library_css', 100 );

7、移除前后文、第一篇文章、主页meta信息

remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );

8、移除评论

remove_action( 'wp_head', 'feed_links', 2 );//文章和评论feed
remove_action( 'wp_head', 'feed_links_extra', 3 ); //分类等feed

9、移除wp-json api 功能

[link rel='https://api.w.org/' href='http://example.com/wp-json/' /]
[link rel="alternate" type="application/json+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=..." /]
[link rel="alternate" type="text/xml+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=..." /]

移除

remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

10、隐藏js/css的后缀版本号

function wpdaxue_remove_cssjs_ver( $src ) {
if( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
add_filter( 'script_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );

11、移除短链接shortlink

remove_action('wp_head','wp_shortlink_wp_head',10,0);

移除wp-json

// 屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

// 移除头部 wp-json 标签和 HTTP header 中的 link 
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );

相关阅读

WordPress免插件去除腾讯视频广告

作为一个使用小水管服务器的站点,为了给网站添加在线视频通常的操作都会把视频上传至优酷、土豆或者腾讯视频等专业的视频网站中,然后在使用iframe的方式把视频放入自己的站点,这种方法在理想状态下是可行的,可事实却往往与理想存在太大差距,这类视频网站引用过来的视频开头或结束会带上对方推广的广告,试想一下一个本来就几十秒的短视频带上了一个超过1分钟的广告,体验让人真的很糟心。 这里便向大家推荐一个不使用…

建站教程 2020-06-22
WordPress免插件去除腾讯视频广告

WordPress封面图方案

我有个坏习惯,不太喜欢在发布文章的时候手动设置特色图片,为了把这个坏习惯贯彻到底,我使用的封面图方案是:若文章中有图片,便自动使用文章中第一张图片作为封面图,若文章中无图,便给文章自动来一张默认封面图,若手动设置了文章特色图便使用后台设置的特色图片作为封面图。 下面是我编写的代码,你只需要把下面代码粘贴在你主题function.php文件中也可以实现和我一样的封面图方案。 最后在主题中调用文章封面…

建站教程 2021-06-12
WordPress封面图方案

WordPress调用特定文章列表

在wordpress主题开发中会遇到需要在特定页面中调用指定的文章或文章列表,接下来教大家如何调用WordPress特定文章列表。 调用最新文章: 调用随机文章: 调用指定分类下的最新文章: 排除指定分类下的文章: 在需要调用特定文章列表的页面使用如上代码,就可以达到效果啦。

建站教程 2021-08-24
WordPress调用特定文章列表

WordPress免插件设置代码高亮

前些天安装了一款代码高亮的wordpress插件,插件不错,支持古腾堡编辑器,但打开网站首页突然发现好像比之前要慢了一点,于是我查看了一番源代码发现这插件给网站新增了一共10个css和js文件,而且是每个页面都添加了,这叫我怎么受得了,虽然我使用了对象存储和cdn加速但那也不是这么玩的啊,我发布的代码只会出现在文章内容页啊亲,越想越忍受不了必须得想个法子,果然经过一顿百度找到方法了,不用插件也可以…

建站教程 2020-02-27
WordPress免插件设置代码高亮

一段代码隐藏WordPress后台登录地址

WordPress作为全球知名内容管理系统,有太多的人和网站在使用,WordPress本身在安全方面已经是做的非常出色的,官方和社区也非常的活跃,但也并不是没有漏洞可钻,比如后台爆破。 正因为有太多的人在使用WordPress,所以他的后台登录地址也被太多人所知道,且不说什么技术性的东西啦,别人知道你的站点后台登录地址,就算瞎测试账号和密码也有可能被试出来吧,尤其是还有好多的WordPress用户…

建站教程 2020-05-22
一段代码隐藏WordPress后台登录地址
回到顶部