PCイメージ
PCイメージ

WordPressでhead内に出力されるタグをプラグイン無しで整理するコード一覧

WordPressはhead内にいろいろなタグを出力しますが、サイトの運用状況によっては必要ないタグもあります。それらのタグを出力しないようにできるコードをまとめてみました(自分がよく忘れるため…)。すべてのコードはfanctions.phpに記載して使用します。

絵文字を利用するためのタグ

WordPress4.2から絵文字を使えるようになりました。head内に、下記のような、javascript と css を出力します。初めて見た時は、「なんじゃこりゃ!ハッキングか?」と驚いた記憶があります。

【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:\/\/example.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8.2"}};
	!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>

個人的には絵文字は全く使いません。なので、下記コードを使い出力しないようにします。

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('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji'); 
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

wp-jsonタグ

【head内に出力される内容】

<link rel='https://api.w.org/' href='https://example.net/wp-json/' />

上記のような wp-json タグを出力させないようにするには下記のコードを使います。

remove_action('wp_head','rest_output_link_wp_head');

ブログ編集ツールのためのタグ

ブログ編集ツールのためのタグです。

【head内に出力される内容】

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

ですが、自分は使う機会がないので、下記コードで削除します。

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

WordPressのバージョン情報表示のタグ

WordPressのバージョン情報を記載するタグです。セキュリティのため、表示しないほうが良いとの記事もよく見かけますが、自分的にはどちらでも良いかなという印象。

【head内に出力される内容】

<meta name="generator" content="WordPress 4.x.x" />

最近は、あってもあまり意味は無いかなと思い非表示にするようにしています。

remove_action('wp_head', 'wp_generator');

canonicalタグ

URLの正規化をするためのタグです。

【head内に出力される内容】

<link rel="canonical" href="https://example.net/" />

SEO的に設定している方が良いかと思いますが、使用しているプラグインの兼ね合い上、wp_headで出力するタグは非表示にしたいなどの場合は、下記コードで削除します。

remove_action('wp_head', 'rel_canonical');

ショートリンク表示のタグ

【head内に出力される内容】

<link rel='shortlink' href='http://example.net/?p=111' />

上記の様なタグですが、あまり必要ないかと思い非表示にしています。

remove_action('wp_head', 'wp_shortlink_wp_head');

Embed埋め込み用のタグ

WordPress4.4から追加されたEmbedに対応させるためのタグです。Embedは他のWebサイトでoEmbedに対応している記事を、URLのコピーだけで自サイトに埋め込みできる機能です。

【head内に出力される内容】

<link rel="alternate" type="application/json+oembed" href="http://example.net/wp-json/oembed/1.0/embed?url=http%3A%2F%2example.net%2Fwp-plugin%2Faph-prism%2F" />
<link rel="alternate" type="text/xml+oembed" href="http://example.net/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fexample.net%2Fwp-plugin%2Faph-prism%2F&format=xml" />

埋め込み機能なんて使わない時は、下記コードで削除します。

remove_action('wp_head','rest_output_link_wp_head');
remove_action('wp_head','wp_oembed_add_discovery_links');
remove_action('wp_head','wp_oembed_add_host_js');

分割ページヘのリンク表示のタグ

複数に分割されたページのリンクを出力させますが、分割はいらないよという場合は、このコードで、非表示にします。

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

DNSプリフェッチ用のタグ

WordPress4.6から追加されたDNSプリフェッチを非表示にする場合は以下のコードを使います。

add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );
function remove_dns_prefetch( $hints, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
        return array_diff( wp_dependencies_unique_hosts(), $hints );
    }
    return $hints;
}

 


JunJunWeb.Netの新着情報を受け取るには
SNSアカウントをフォローすると便利!
タグ :