Image placeholder

wordpress优化:移除头部多余信息和JS、CSS版本号以及HTTP header中的链接

Image placeholder
F2EX 2016-11-12

wordpress-head


WordPress默认在网站头部添加了很多无用的信息。 这些都可以使用wordpress提供的remove_actionadd_filter 函数删除。

将以下代码放在你的WordPress主题的functions.php文件中,即可从你的网站头部删除一些无用的东西。

关闭XML-RPC

add_filter('xmlrpc_enabled', '__return_false');

移除 WordPress 加载的JS和CSS链接中的版本号

function remove_cssjs_ver( $src ) 
{
	if( strpos( $src, '?ver=' ) )
		$src = remove_query_arg( 'ver', $src );
	return $src;
}

add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );
add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );

删除html head和feed中的wordpress版本号

function bing_remove_wp_version() { return '';}
add_filter('the_generator', 'bing_remove_wp_version');

优化 wordpress 头部

remove_action('wp_head', 'rsd_link'); // remove really simple discovery link
remove_action('wp_head', 'wp_generator'); // remove wordpress version

remove_action('wp_head', 'feed_links', 2); // remove rss feed links (make sure you add them in yourself if youre using feedblitz or an rss service)
remove_action('wp_head', 'feed_links_extra', 3); // removes all extra rss feed links

remove_action('wp_head', 'index_rel_link'); // remove link to index page
remove_action('wp_head', 'wlwmanifest_link'); // remove wlwmanifest.xml (needed to support windows live writer)

remove_action('wp_head', 'start_post_rel_link', 10, 0); // remove random post link
remove_action('wp_head', 'parent_post_rel_link', 10, 0); // remove parent post link
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); // remove the next and previous post links
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
	
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
	
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0); // 移除页面中的短链接
remove_action('template_redirect', 'wp_shortlink_header', 11, 0); // 移除http消息头中的短链接

移除JSON API

function remove_json_api () {
	
	// Remove the REST API lines from the HTML Header
	remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); //移除页面中的wp-json链接
	remove_action('template_redirect', 'rest_output_link_header', 11 ); //移除http消息头中的wp-json链接

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

	// Remove the REST API endpoint.
	remove_action( 'rest_api_init', 'wp_oembed_register_route' );

	// Turn off oEmbed auto discovery.
	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' );

	// Remove all embeds rewrite rules.
	add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );

}
add_action( 'after_setup_theme', 'remove_json_api' );

禁用 REST API 

function disable_json_api () {
	
	// Filters for WP-API version 1.x
	add_filter('json_enabled', '__return_false');
	add_filter('json_jsonp_enabled', '__return_false');

	// Filters for WP-API version 2.x
	add_filter('rest_enabled', '__return_false');
	add_filter('rest_jsonp_enabled', '__return_false');

}
add_action( 'after_setup_theme', 'disable_json_api' );

禁用emoji 

function disable_wp_emojis() {
	
	// Remove Emoji
	remove_action( 'admin_print_styles', 'print_emoji_styles' );
	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('embed_head', 'print_emoji_detection_script');
	remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
	remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
	remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );

	// Remove TinyMCE emojis via Filter
	add_filter( 'tiny_mce_plugins', 'disable_emojis_on_tinymce' );

	// Remove DNS Prefetch for Emojis via Filter
	add_filter( 'emoji_svg_url', '__return_false' );

}
add_action( 'init', 'disable_wp_emojis' );

禁用所有feeds

function disable_all_feeds () {

	wp_die( __('网站没有可用的feed。请访问我们的  <a href="'. get_bloginfo('url') .'">首页</a>.') );

}
add_action('do_feed', 'disable_all_feeds', 1);
add_action('do_feed_rdf', 'disable_all_feeds', 1);
add_action('do_feed_atom', 'disable_all_feeds', 1);
add_action('do_feed_rss', 'disable_all_feeds', 1);
add_action('do_feed_rss2', 'disable_all_feeds', 1);

有关remove_action和WordPress头的更多信息,请查看官方文档


2021-06-28