ページ目次
デフォルトでは結構いらないものがたくさんある
CMSはできるだけ多くの人の要求に応えられるよう作られているので、何も設定しないでいると、余計なスクリプトが読み込まれたりするなど、結構いらないものがくっついてきます。
そういったものはもちろん削除しなくても特段問題はないのですが(たまにあったりするらしい)、ページの読み込み速度の改善にもなるため、使わないのであればfunction.phpに記述してそれらの項目を削除(または追加)するのが無難です。
私がいつもテンプレート的に行っているのが以下の設定です。
- wlwmanifest_link
- wp_generator
- rsd_link
- feed_links
- feed_links_extra
- print_emoji_detection_script
- wpautop
- post-thumbnails(追加)
head部分への出力をきれいにする
wlwmanifest_link
Microsoftが提供するブログエディター「Windows Live Writer」を使用する際のマニフェストファイルへのリンクを生成します。同エディターを使用する予定がない場合は削除します。
remove_action('wp_head', 'wlwmanifest_link');
wp_generator
<meta name=”generator”>を生成します。どのサービスやツールを使ってサイトを作成したのかを知らせるメタタグです。使いどころもよく分かりませんし、WordPressのバージョン情報を知らせるのはセキュリティ的によろしくないとの指摘もあるので、削除します。
remove_action('wp_head', 'wp_generator');
rsd_link
RSD(Really Simple Discovery)用のxmlへのリンクを作成します。RSDは、WordPress外部のサービスを使用する際、同サービスがWordPress内の情報を取得するために必要とされるものです。外部サービスを使ってサイトを運営する予定がない場合は削除します。
remove_action('wp_head', 'rsd_link');
feed_linksとfeed_links_extra
フィードへのリンクを表示します。サイトがブログ的な性格を帯びている場合は必要ですが、それ以外の場合はとくに必要ないので削除します。
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
print_emoji_detection_script
絵文字表示用に読み込まれるスクリプトです。絵文字を使う機会があまりありませんので無効化します。そして、その際に適用されるスタイルシートの読み込みもキャンセルします。
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
投稿に関する部分
wpautop
投稿に<p>タグが自動的に挿入される機能です。意図しない位置で改行されたり、タグが挿入されることがあるので、無効にしています。
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
post-thumbnails
投稿編集画面に投稿のアイキャッチ画像を設定するためのカラムを追加します。
add_theme_suport('post-thumbnails');
ぜんぶひっくるめるとこんな感じ。
<?php
// functions.php
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
add_theme_suport('post-thumbnails');
?>
ちなみに
functions.phpは、WordPressの機能面をカスタマイズしていくと記述が多くなりコードの可読性が悪くなりがちです。機能ごとにファイルを分割すれば、コードの可読性を良好に保つことができ、管理がしやすくなります。
<?php
// functions.php
/**
* locate_template( $path, $load, $once )
* $path (配列)(必須)優先度順のファイルパスの配列
* $load trueの場合、ファイルがあれば読み込む。
初期値: false
* $once trueなら、require_once、falseならrequire
初期値: true
*/
locate_template( '読み込みたいPHPファイルへのパス', true );
locate_template( '読み込みたいPHPファイルへのパス', true );
?>
実は「Head Cleaner」がやってくれる
偉そうにつらつらと書きましたが、WordPressの定番プラグインである「Head Cleaner」がこれらのこと(ヘッド部分の整理)をやってくれます。
WORDPRESS.ORG – プラグイン / Head Cleaner
削除してくれるのは3つ
Head Cleanerが削除してくれるのは、上で挙げたタグのうち以下の3つです。
- wlwmanifest_link
- wp_generator
- rsd_link
よって、これら以外はfunctions.phpに残しておきましょう。
Yoast SEOとの併用は個人的にオススメしない
他のエントリーでも書いたんですが、Yoast SEOが<head>内に書き込む情報とHead Cleanerが整理する情報(主にJavaScript)がうまく相互に作用せずエラー起こし、後につづくアナリティクスのコードが読み込まれない。と、いうことがありました。
過去記事: WordPressプラグインを「All in One SEO」に変えたのは「Head Cleaner」と「Yoast SEO」の相性がどうもよくないから
Head Cleanerを使う場合には気をつけてください。