【WordPress】ヘッダー部分に出力される不要な情報を削除する

公開日:
更新日:
カテゴリー: WordPress

WordPressのヘッダー部分(「<head>」~「</head>」の部分)には、バージョンなどの情報が「wp_head」にフックされて出力されますが、その中には不要なものがあるかと思います。

ここでは、「別になくてもよくね?」と思うヘッダー情報を削除する方法(出力させない方法)をまとめています。

ヘッダーに不要な情報が出力される原因

ヘッダーに不要な情報が出力される原因は、現在使用しているWordPressテーマの「header.php」を見るとわかると思いますが、

wp_head();

があるからです。

強引にこれを削除すると、一切不要なヘッダー情報は出力されませんが、これがないとインストールしたプラグインを機能させるためのファイルが出力されなくなるので削除は厳禁です。

ヘッダー情報を削除する方法

じゃあどうするか?とういことですが、「wp_head」関数にフックされている不要な情報のみ、「remove_action」でフックを解除してあげればよいです。

技術的な難しいことは考えず、コピペすればOKです。

remove_action('wp_head', 'ここに削除したいヘッダー情報を指定');

これを使用しているテーマの「functions.php」に記述することで、任意のヘッダー情報を削除できます。

なお、「wp_head」関数にフックされているものは「wp-includes/default-filters.php」で確認できますので、その情報を参考にすれば削除できないものはないと思います。

不要なヘッダー情報を削除してみる

個人的に「不要じゃないかな?」と思うものを削除してみたいと思います。

バージョン

WordPressのバージョン情報はあってもなくても変わらないと思いますし、セキュリティ的には不必要な情報を公開してもよくないので、削除します。

remove_action('wp_head', 'wp_generator');

これで以下が消えます。

<meta name="generator" content="WordPress 3.8.1" />

Windows Live Writerでの遠隔投稿用情報

WLW(Windows Live Writer)で遠隔投稿する場合は必要ですが、投稿しない場合は不要なので削除します。

remove_action('wp_head', 'wlwmanifest_link');

これで以下が削除されます。

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://○○○.com/wp-includes/wlwmanifest.xml" />

xmlrpcでの遠隔投稿用情報

xmlrpcでの遠隔投稿をしない場合は不必要なので、削除します。

remove_action('wp_head', 'rsd_link');

これでこれが消えます。

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://○○○.com/xmlrpc.php?rsd" />

ショートリンクのURL

※追記:久しぶりにヘッダー情報を見直していたところ、「WordPress 4.7.4」時点ではショートリンク情報は出力されていなかったので、この操作は不要だと思います。

ショートリンクのURLは特にいらないと思いますので、削除します。

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

これで以下が消えます。

<link rel='shortlink' href='http://○○○.com/?p=48' />

絵文字「emoji」関連の情報

WordPress 4.2 から絵文字機能が搭載されましたが、絵文字を使わない場合、ヘッダー部分に絵文字を表示するための「CSS」と「javascriptファイル」が表示され、ヘッダーが汚く見えるだけでなくブラウザに無駄な読み込みを発生させてページ表示が遅くなるので削除してあげます。

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

これで、以下の無駄な情報をヘッダー部分から削除できます。

		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/ysklog.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7.4"}};
			!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),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),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>

2017年5月現在で不要だと私が思って削除しているのは以上です。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント