ぱそこん生活感。のTOPへ


2012.08.20

wp_headで出力される不要head要素を削除する

 ワードプレスは結構お節介なところがあります。ブログのHTMLソースを見ると色々な項目が自動的に(勝手に)出力されています。今回はwp_head()を対象にいらないものを消していきます。
 

どんなものが出力されているか

 例として、「テーマチェック」するプラグインが有ります(Ver3.4以降対応版)で使用したサンプルテーマ13Bを見てみます。この場合のhead部分のHTMLソースは

<サンプルテーマ13B・個別記事のHTMLソース(head部抜粋)>
<link rel="stylesheet" href="http://(ブログURL)/wp/wp-content/themes/pcsk-s13b/style.css" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="(ブログ名) &raquo; フィード" href="http://(ブログURL)/feed/" />
<link rel="alternate" type="application/rss+xml" title="(ブログ名) &raquo; コメントフィード" href="http://(ブログURL)/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="(ブログ名) &raquo; (記事タイトル) のコメントのフィード" href="http://(記事URL)/feed/" />
<script type='text/javascript' src='http://(ブログURL)/wp/wp-includes/js/comment-reply.js?ver=3.4.1'></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://(ブログURL)/wp/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://(ブログURL)/wp/wp-includes/wlwmanifest.xml" /> 
<link rel='prev' title='(前記事タイトル)' href='http://(前記事URL)/' />
<link rel='next' title='(後記事タイトル)' href='http://(後記事URL)/' />
<meta name="generator" content="WordPress 3.4.1" />
<link rel='canonical' href='http://(記事URL)/' />
<link rel='shortlink' href='http://(ブログURL)/?p=189' />

となります。head部分のlinkタグはstylesheet以外は自動出力です。9個も追加されています(あと、metaタグも1個追加有り)。これらがwp_head()関数によるものです。
 

不要なものを消して行こう

 不要なタグを消去するには、functions.phpに削除する為のコードを追記します。以下、具体的に説明します。
 

・link rel="EditURI" type="application/rsd+xml" title="RSD"

 これはリモート投稿をする時に使用します。管理人には不要なので削除です。下の文をfunctions.phpに追記します。

remove_action('wp_head', 'rsd_link');

 

・link rel="wlwmanifest" type="application/wlwmanifest+xml"

 これもリモート投稿用なので削除します。

remove_action('wp_head', 'wlwmanifest_link');

 

・link rel=’prev’ と link rel=’next’

 これは前の文書と次の文書へのリンクを表示するものですが、特に必要でも無いので消します。

remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');

 

・meta name="generator"

 これはWordPressのバージョンを示すmetaタグです。表示する必要性は無いと思うので消します。

remove_action('wp_head', 'wp_generator');

 

・link rel=’shortlink’

 これはWordPressの投稿IDを使った短いURL(デフォルトのURL)を表示します。これも必要ないので消します。

remove_action('wp_head', 'wp_shortlink_wp_head');

 

残したhead要素

・link rel="alternate" type="application/rss+xml"

 これはフィードのリンクなので必要と思い残しました。
 

・link rel=’canonical’

 これも頁重複登録(検索エンジン)を防ぐ為必要と思い残しました。
 

おまけ・どこでwp_head()を設定しているのか

 WordPressのインストールフォルダのwp-includesの中のdefault-filters.phpというファイルで設定しているみたいです。中を見てみると

<default-filters.php の内容(wp_head関連抜粋)>
(省略)
// Actions
add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
add_action( 'wp_head',             'feed_links',                      2     );
add_action( 'wp_head',             'feed_links_extra',                3     );
add_action( 'wp_head',             'rsd_link'                               );
add_action( 'wp_head',             'wlwmanifest_link'                       );
add_action( 'wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );
add_action( 'wp_head',             'locale_stylesheet'                      );
add_action( 'publish_future_post', 'check_and_publish_future_post',   10, 1 );
add_action( 'wp_head',             'noindex',                          1    );
add_action( 'wp_head',             'wp_print_styles',                  8    );
add_action( 'wp_head',             'wp_print_head_scripts',            9    );
add_action( 'wp_head',             'wp_generator'                           );
add_action( 'wp_head',             'rel_canonical'                          );
add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
(省略)

の様になっています。上で挙げた以外にも色々wp_headで設定していますね。

  1. [...] CSS(スタイルシート)を削除する フォーラムでも話題になっていましたが、バージョンによってはwp_headが勝手にCSSを吐き出します。これはログイン時に上部の管理バーを表示するのと関係があるみたいで、ログアウトするとCSS自体も消えます。常時そのCSSを無効にしておくようなコードが記述できないか探していたのですが、_admin_bar_bump_cbをリムーブしても効果なしでした。フォーラムにもあるように管理画面の左メニューから「ユーザー」→「あなたのプロフィール」から個人設定の項目で、「サイトを見るときにツールバーを表示する」のチェックボックスを外しておけば自動的に挿入される変なCSSは消えます。 デフォルトのwp_head()の内容 [...]






国の金融政策