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="(ブログ名) » フィード" href="http://(ブログURL)/feed/" /> <link rel="alternate" type="application/rss+xml" title="(ブログ名) » コメントフィード" href="http://(ブログURL)/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="(ブログ名) » (記事タイトル) のコメントのフィード" 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で設定していますね。
- 最近のコメント
- wp_headで出力される不要head要素を削除する に omnioo lab. record | オムニオラボの備忘録 より[ 01/14 ]
- bypostauthorをCSSで設定する に 名無しさん より[ 06/01 ]
- bypostauthorをCSSで設定する に ぱそこん生活感管理人 より[ 06/01 ]
- bypostauthorをCSSで設定する に 名無しさん より[ 06/01 ]
- ぱそこん生活感。を開設しました に Mr WordPress より[ 06/07 ]
[...] CSS(スタイルシート)を削除する フォーラムでも話題になっていましたが、バージョンによってはwp_headが勝手にCSSを吐き出します。これはログイン時に上部の管理バーを表示するのと関係があるみたいで、ログアウトするとCSS自体も消えます。常時そのCSSを無効にしておくようなコードが記述できないか探していたのですが、_admin_bar_bump_cbをリムーブしても効果なしでした。フォーラムにもあるように管理画面の左メニューから「ユーザー」→「あなたのプロフィール」から個人設定の項目で、「サイトを見るときにツールバーを表示する」のチェックボックスを外しておけば自動的に挿入される変なCSSは消えます。 デフォルトのwp_head()の内容 [...]