概要
WordPressでは便利な反面、デフォルトのままではheaderに不要なタグが出力されていたり、不要なJS、CSSが読み込まれたり、自動で整形をする機能がついていたりします。
こちらを整理するため、functions.phpに記述をしておきたいコードを紹介します。
generator
header内に、どのようなソフトを使ってホームページを作成したかなどの情報が以下のように出力されています。
<meta name="generator" content="WordPress x.x.x" />
セキュリティ対策として削除しておくことをお勧めします。
削除をする場合は、functions.phpへ以下のコードを記述します。
// generatorの削除
remove_action('wp_head', 'wp_generator');
EditURI
外部の投稿ツールを使って記事の投稿を行う場合に使用をしますが、投稿ツールを使用して投稿を行わない場合は削除をしましょう。
削除をする場合は、functions.phpへ以下のコードを記述します。
// EditURIの削除
remove_action('wp_head', 'rsd_link');
wlwmanifest
EditURI同様、Windows Live Writerというツールを使用する場合に使用をしますが、使用をしない場合は削除をしましょう。
削除をする場合は、functions.phpへ以下のコードを記述します。
// wlwmanifestの削除
remove_action('wp_head', 'wlwmanifest_link');
絵文字用のJS・CSS
WordPressはデフォルトで絵文字表示用のスクリプトやスタイルが読み込まれるようになっています。特に絵文字を使用することがない場合は削除をしましょう。
削除をする場合は、functions.phpへ以下のコードを記述します。
// 絵文字用のJS/CSSの削除
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');
// 絵文字用dns-prefetchの削除
add_filter('emoji_svg_url', '__return_false');
rel=”next” rel=”prev”
以前は、rel=”next” rel=”prev”をつけることでSEO効果がありましたが、Googleが2019年3月21日をもってサポートを終了してしまったので不要なので削除しても問題ありません。
削除をする場合は、functions.phpへ以下のコードを記述します。
// rel="next" rel="prev"の削除
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
shortlink
投稿記事のページには短縮URLが出力されるのですが、短縮URLを使用しない場合は、不要なので削除しても問題ありません。
削除をする場合は、functions.phpへ以下のコードを記述します。
// shortlinkの削除
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
自動整形機能
WordPressのデフォルトでついている自動整形機能では空のpタグが勝手に挿入されることがあります。レイアウトにも影響を与えてしまうので、自動整形機能をOFFにしたいことがあると思います。
自動整形機能をOFFにする場合は、functions.phpへ以下のコードを記述します。
// 自動整形機能をOFF
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
JS・CSSの「?ver=~」
WordPressはJavaScriptやCSSに、バージョンの番号が付きます。こちらも、古いバージョンだとセキュリティ的にあまり良くないため表示をしないようにすることをお勧めします。
「?ver=~」を削除する場合は、functions.phpへ以下のコードを記述します。
// WordPressの「?ver=~」を削除
function vc_remove_wp_ver_css_js($src) {
if (strpos( $src, 'ver=' . get_bloginfo('version')))
$src = remove_query_arg('ver', $src);
return $src;
}
add_filter('style_loader_src', 'vc_remove_wp_ver_css_js', 9999);
add_filter('script_loader_src', 'vc_remove_wp_ver_css_js', 9999);
全てのコード
全てのコードを一つにまとめると以下のようになります。
// generatorの削除
remove_action('wp_head', 'wp_generator');
// EditURIの削除
remove_action('wp_head', 'rsd_link');
// wlwmanifestの削除
remove_action('wp_head', 'wlwmanifest_link');
// 絵文字用のJS/CSSの削除
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');
// 絵文字用dns-prefetchの削除
add_filter('emoji_svg_url', '__return_false');
// rel="next" rel="prev"の削除
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
// shortlinkの削除
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
// 自動整形機能をOFF
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
// WordPressの「?ver=~」を削除
function vc_remove_wp_ver_css_js($src) {
if (strpos( $src, 'ver=' . get_bloginfo('version')))
$src = remove_query_arg('ver', $src);
return $src;
}
add_filter('style_loader_src', 'vc_remove_wp_ver_css_js', 9999);
add_filter('script_loader_src', 'vc_remove_wp_ver_css_js', 9999);