WordPress网站从标题中删除不必要的元标签 - 汇站网

WordPress网站从标题中删除不必要的元标签

2021-08-11 0 538

一般来说,WordPress head 标签默认是指系统 WP_uhead()函数,加载更多的元标签和链接,比如 WP 版本号、上一篇和下一篇文章的链接等元元素。有些元素本身对网站优化没有实际影响,那么我们就来说说 WordPress 是如何在白天去除标题中多余的元标签的。
一般来说,WordPress head 标签默认是指系统 WP_uhead()函数,加载更多的元标签和链接,比如 WP 版本号、上一篇和下一篇文章的链接等元元素。有些元素本身对网站优化没有实际影响,那么我们就来说说 WordPress 是如何在白天去除标题中多余的元标签的。
WordPress 从标题中移除冗余的元标签。
1.移除方法的详细说明。
在主题目录中找到functions.php文件,并在文件末尾添加以下代码以删除冗余标签和元素。
注意:请根据实际情况选择要删除的项目。
1.删除 WordPress 版本信息。
WordPress 自动添加版本号信息。在头部区域,您可以看到:

WordPress网站从标题中删除不必要的元标签

<meta name="generator" content="WordPress 5.2.1">

版本号是默认添加的,但是可以被黑客利用,攻击特定版本的 WordPress 漏洞。

移除代码:

remove_action( 'wp_head', 'wp_generator' );

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

WordPress 自动添加两行离线编辑器的开放接口,在 head 区域,可以看到:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://wordpress.cc/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://wordpress.cc/wp-includes/wlwmanifest.xml">

其中 RSD 是一个广义的接口,wlwmanifest 是针对微软 Live Writer 编辑器的。如果你不需要离线编辑,可移除之。即便你需要使用离线编辑器,大部分时候也不需要这两行代码。保留这两行代码可能会留有安全隐患。

移除代码:

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

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

WordPress 把前后文、第一篇文章和主页链接全放在 meta 中。对 SEO 的帮助并不大,反而让增多 head 头部信息。建议删除

移除代码:

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 );//删除上下篇文章链接

4、移除 shortlink 标签

在 WordPress 3.0 开始,即使你已经设定了永久链接,但是在文章页面标签内还是会出现一个 shortlink 标签,如果不想搜索引擎抓取 “/?p=” 的网址,那么 head 头部里短网址标签一并移除吧。移除代码如下:

remove_action( 'wp_head', 'wp_shortlink_wp_head',10, 0 );//删除短链接

5、移除 feed

HTML 中通过<link rel=”alternate” type=”application/rss+xml” title=”feed 名” href=”http://xxx.com/feed/” />来指定博客 feed。当网站发布新内容时,可以让浏览器发现并提醒已订阅用户。如果你不想添加 feed,那就删除它。

移除代码:

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

6、禁用 embeds 功能并移除 wp-embed.min.js 文件

WordPress 自动添加 embeds 功能和 wp-embed.min.js 文件,在 head 区域,可以看到:

<script type="text/javascript" src="http://wordpress.cc/wp-includes/js/wp-embed.min.js?ver=5.2.1"></script>

移除代码:

function disable_embeds_init() {
/* @var WP $wp */
global $wp;
// Remove the embed query var.
$wp->public_query_vars = array_diff( $wp->public_query_vars, array(
’embed’, 
) );

// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off
add_filter( 'embed_oembed_discover', '__return_false' );
// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Remove all embeds rewrite rules.
add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
}

add_action( 'init', 'disable_embeds_init', 9999 );
/**

* Removes the 'wpembed' TinyMCE plugin.
*
* @since 1.0.0
*
* @param array $plugins List of TinyMCE plugins.
* @return array The modified list.
*/

function disable_embeds_tiny_mce_plugin( $plugins ) {
return array_diff( $plugins, array( 'wpembed' ) );
}

/**
* Remove all rewrite rules related to embeds.
*
* @since 1.2.0
*
* @param array $rules WordPress rewrite rules.
* @return array Rewrite rules without embeds rules.
*/

function disable_embeds_rewrites( $rules ) {
foreach ( $rules as $rule => $rewrite ) {
if ( false !== strpos( $rewrite, 'embed=true' ) ) {
unset( $rules[ $rule ] );
}
}
return $rules;
}

/**
* Remove embeds rewrite rules on plugin activation.
*
* @since 1.2.0
*/

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' );

/**
* Flush rewrite rules on plugin deactivation.
*
* @since 1.2.0
*/

function disable_embeds_flush_rewrite_rules() {
remove_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );

7、移除 WordPress 头部加载 DNS 预获取(dns-prefetch)

在 head 我们可以看到:

<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 );

8、移除 emoji 表情 script 和 style

在 head 可以看到:

<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>

这样一大段 emoji 表情包含的代码,会在页面加载静态资源,建议禁用和移除 JS 文件。

禁用代码:

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

9、移除 wp-json 链接

在 head 我们可以看到

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

移除代码:

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

二、部分函数解释

1、wp_head()函数

wp_head()是 wordpress 的一个非常重要的函数,基本上所有的主题在 header.php 这个文件里都会使用到这个函数,而且很多插 件为了在 header 上加点东西也会用到 wp_head(),比如 SEO 的相关插件。不过在 wp_head()出现的这个位置,会增加很多并 不常用或多余 的代 码,删除时这些不常用或多余可以通过 remove_action 移除这些代码。

2、 remove_action 函数

函数原型:

remove_action( $tag, $function_to_add, $priority, $accepted_args );

该函数移除一个附属于指定动作 hook 的函数。该方法可用来移除附属于特定动作 hook 的默认函数,并可能用其它函数取而代之。

重要:添加 hook 时的$function_to_remove 和$priority 参数要能够相匹配,这样才可以移除 hook。该原则也适用于过滤器和动作。移除失败时不进行警告提示。

参数

  • $tag(字符串)(必需)将要被删除的函数所连接到的动作 hook。默认值:None
  • $function_to_remove(回调)(必需) 将要被删除函数的名称默认值:None
  • $priority(整数)(可选)函数优先级(在函数最初连接时定义)默认值:10
  • $accepted_args(整数)(必需)函数所接受参数的数量。默认值:1

返回值

(布尔值)函数是否被移除。

  • Ttue 函数被成功移除
  • False 函数未被移除

 

转载请注明:汇站网 » WordPress 网站从标题中删除不必要的元标签

收藏 (0)

微信扫一扫

支付宝扫一扫

点赞 (0)

免责 声明

本资源仅用于个人 学习和研究使用,禁止用于任何商业环境!

 1.  本网站名称:汇站网
 2.  本站永久网址:https://www.huizhanii.com/
 3.  本站所有资源来源于网友投稿和高价 购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务 !
 4.  本站所有资源的展示图片和信息不代表本站的立场 !本站只是储蓄平台及搬运
 5.  下载者禁止在服务器和虚拟机下进行搭建运营,本站 所有资源不支持联网运行!只允许调试,参考和研究!!!!
 6.  未经原版权作者许可,禁止用于任何 商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
 7.  为尊重作者版权,请在下载24小时 内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
 8.  若资源侵犯了您的合法权益, 请持 您的版权证书和相关原作品信息来信通知我们请来信     通知我们 我们会及时删除,给您带来的不便,我们深表歉意!
 9.  如下载链接失效、广告或者压缩包 问题请联系站长处理!
 10.  如果你也有好源码或者教程,可以 发布到网站,分享有金币奖励和额外收入!
 11.  本站资源售价只是赞助,收取费用 仅维持本站的日常运营所需!
 12.  因源码具有可复制性,一经赞助 ,不得以任何形式退款。
 13.  更多详情请点击查看

汇站网 WordPress WordPress网站从标题中删除不必要的元标签 https://www.huizhanii.com/14854.html

汇站

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

发表评论
暂无评论
  随机评论   表情   下载本站到电脑桌面


表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
登录后评论
联系官方客服

为您解决烦忧 - 24小时在线 专业服务

(汇站网)一个专注站长资源的平台网站,提供最新的网站模板和整站源码,内容包含各类精品网页模板,企业网站模板,网站模板,DIV+CSS模板,织梦模板,帝国cms模板,discuz模板,wordpress模板,个人博客论坛模板,上千种免费网页模板下载尽在汇站网.找源码上汇站.huizhanii.com