[WordPress] WordPress 4.6 からヘッダーに表示されるようになった DNS プリフェッチを非表示にする

WordPress 4.6 にアップデートしたら DNS プリフェッチ用のタグがヘッダーに表示されるようになっていたので削除する方法などを調べてみました。

DNSプリフェッチ用のリンクタグ

WordPress 4.6 から wp_resource_hints() 関数が使用できるようになりました。これにより wp_resource_hints() を通してヘッダーへ以下のリンクダグが表示されるようになっています。

<link rel='dns-prefetch' href='//s.w.org'>

これは、WordPress の絵文字を CDN しているドメインを DNS プリフェッチする設定のようです。

DNS プリフェッチとは

DNSプリフェッチを使用すると、外部ドメインの名前解決を事前に強制でできるため表示速度を上げることが可能です。詳しくは以下のリンク先が参考になります。

絵文字の DNS プリフェッチだけを削除したい場合

WordPress の絵文字機能をフックで外して使用していない場合も多いのではないでしょうか、その場合このリンクタグも必要ないため非表示にしてしまいたいです。その場合は functions.php へ以下の記述を追加します。

add_filter( 'emoji_svg_url', '__return_false' );

wp_resource_hints() を通して表示される DNS プリフェッチをすべて非表示にする

プラグインの関係か、サイトによっては絵文字以外の DNS プリフェッチが表示されていました。

は絵文字以外の DNS プリフェッチ

ウェブフォントや Bootstrap などの CDN は DNS プリフェッチされていた方がよいと思いますが、もし表示したくない場合は以下のように wp_resource_hints フィルターフックを使って非表示にすることができます。

functions.php などへ以下を記入して dns-prefetch として登録されているものを削除します。

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

これでヘッダーから DNS プリフェッチのタグがすべて削除できました。

3

Related Article

1 Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー jQueryプラグイン スライドショー トラブル コードサンプル 素材 コンテンツ Facebook php 引っ越し お知らせ JavaScript カテゴリー Shareボタン CSS IE 投稿タイプ レスポンシブ Photoshop seo Macアプリ サイドバー タクソノミー HTML5 WPセキュリティ Git カスタムメニュー ナビゲーション PHPリファレンス SVG API query_posts RSS WP使い方 iTunes データベース コメント function 条件分岐 get_posts() スマートフォン Sass/Compass moreタグ