精简WordPress中的wp_head

wp_head()这个函数基本是每个WordPress主题的header.php里都会有的,一些WordPress插件或者主题会通过wp_head这个钩子,在中添加一些必要或非必要的元信息,当然里面也有WordPress自带的,例如版本信息、feed地址、离线编辑接口、前后文地址等。

可以查看博客首页的HTML源码:

WordPress,wp_head,优化

要知道,所有wp_head自带的钩子列表是全在wp-includes/default-filters.php中,点击查看代码199~212行,而具体实现函数则在wp-includes/general-template.php

接下来我们要去掉wp_head中多余的钩子,精简head中的内容就容易了。

可以在WordPress主题文件夹中的functions.php文件中添加代码实现相应功能。

1、 去除WordPress版本信息,如上图的meta name=”generator”:

remove_action( ‘wp_head’, ‘wp_generator’ );

2、 清除离线编辑器接口,上图中的”EditURI”和”wlwmanifest”:

remove_action( ‘wp_head’, ‘wlwmanifest_link’ );
remove_action( ‘wp_head’, ‘index_rel_link’ );

3、 清除前后文信息,如上图中的rel=’prev’和rel=’net’

remove_action( ‘wp_head’, ‘index_rel_link’,10,0 );
remove_action( ‘wp_head’, ‘start_post_rel_link’, 10, 0 );

不过自WordPress 3.2以后在wp-includes/default-filters.php中已经去掉了index_rel_link和start_post_rel_link,如果你的WordPress版本3.2以上,用add_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0 ); 即可。

4、 去除feed信息:

remove_action( ‘wp_head’, ‘feed_links’, 2 );
remove_action( ‘wp_head’, ‘feed_links_extra’, 3 );

5、 清除短链接即类似上图”?p=1109”的链接:

remove_action(‘wp_head’, ‘wp_shortlink_wp_head’,10,0 );

还有其他可以去掉的内容就不一一列举了。不过折腾这个也没啥意义,强迫症作怪。

顺便贴出乌帮图博客functions.php里添加的代码以供大家复制粘贴,可以直接放到functions.php文件的第一个<?php面即可,注意标点符号半角:

remove_action(‘wp_head’, ‘wp_generator’ ); //去除版本信息
remove_action(‘wp_head’, ‘wlwmanifest_link’ );
remove_action(‘wp_head’, ‘rsd_link’ );//清除离线编辑器接口
remove_action(‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0 );//清除前后文信息
remove_action(‘wp_head’, ‘feed_links’,2 );
remove_action(‘wp_head’, ‘feed_links_extra’,3 );//清除feed信息
remove_action(‘wp_head’, ‘wp_shortlink_wp_head’,10,0 );

具体效果请右键查看本页源代码。

» 链接地址:https://wubangtu.com/wp-head.html »英雄不问来路,转载请注明出处。

精简WordPress中的wp_head》上有 13 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。