大家在使用WordPress建站时会借助wp_head在页面头部输出一些内容,然而一些标签和链接是不需要的,比如WordPress版本号、上下篇文章链接和其他一些 Meta元素。本文将为大家介绍下WordPress移除head头部不必要的标签和链接方法,从而可以更好地优化网站头部。
1、移除WordPress版本信息
WordPress自动添加版本号信息,在head区域可以看到:
<meta name=”generator” content=”WordPress 5.8.2″>
版本号是默认添加的,但是容易被利用攻击特定版本的WordPress漏洞。
移除代码如下:
//移除WordPress版本信息 remove_action( 'wp_head', 'wp_generator' );
2、去除加载的 css 和 js 后面的版本号
//去除加载的 css 和 js 后面的版本号: function _remove_script_version( $src ){ $parts = explode( '?', $src ); return $parts[0]; } add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); add_filter( 'style_loader_src', '_remove_script_version', 15, 1 ); add_filter( 'pre_option_link_manager_enabled', '__return_true' );
3、移除Windows Live Writer
Windows Live Writer在head区域输出如下:
<link rel=”wlwmanifest” type=”application/wlwmanifest+xml” href=”http://example.com/wp-includes/wlwmanifest.xml” />
移除代码:
remove_action('wp_head', 'wlwmanifest_link');
4、去除 wp-embed 功能,加快网页打开速度
//去除 wp-embed 功能,加快网页打开速度: remove_action('rest_api_init', 'wp_oembed_register_route'); remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4); remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10 ); remove_filter('oembed_response_data', 'get_oembed_response_data_rich', 10, 4); remove_action('wp_head', 'wp_oembed_add_discovery_links'); remove_action('wp_head', 'wp_oembed_add_host_js');
5、替换 WordPress jquery 源为 loli.net,加快网页打开速度
add_action( 'init', 'jquery_register' ); function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'https://cdnjs.loli.net/ajax/libs/jquery/1.12.4/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } }
6、移除Really Simple Discovery
Really Simple Discovery在head区域可以看到:
<link rel=”wlwmanifest” type=”application/wlwmanifest+xml” href=”http://example.com/wp-includes/wlwmanifest.xml”>
移除代码:
remove_action( 'wp_head', 'rsd_link' );
7、移除shortlink标签
在WordPress 3.0开始,即使已经设定了永久链接,但是在文章页面标签内还是会出现一个shortlink标签,如果不想搜索引擎抓取 “/?p=” 的网址,那么head头部里短网址标签一并移除吧。
移除代码:
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); remove_action( 'template_redirect','wp_shortlink_header',11,0);
8、移除feed
HTML中通过<link rel=”alternate” type=”application/rss+xml” title=”feed名” href=”http://xxx.com/feed/” />来指定博客feed。当网站发布新内容时可以让浏览器发现并提醒已订阅用户,如果不想添加feed那就删除它。
移除代码:
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); remove_action( 'template_redirect','wp_shortlink_header',11,0);
9、移除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 );
10、移除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 );