WordPressを使ってサイトを作成すると、自動的に<head>に追加される項目がいくつかあります。自動で追加されるメタ情報などのタグは、テーマファイルのheader.phpをみてもらうとわかりますが、wp_head()というWordPressの関数で呼び出しています。
header.phpを見ると、以下のような記述がありませんか?この部分がタグの情報を呼び出しているんです。
<?php wp_head(); ?>
でも、追加されるタグの中にはいらないものも結構あるんですよね。
今回はいらないタグを削除してヘッダーをすっきりさせる方法をご紹介いたします。
wp_headの情報はどこから読み込んでいるのか
wp_head()で呼び出されるタグは、/wp-includes/default-filters.php に記述されています。default-filters.phpを開くと、以下のような部分があると思います。これが、wp_head()を呼びだした時に書き出される情報になります。
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( '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 );
ここで必要ないタグを消去してもいいのですが、WordPressを更新したらまた書き換えなきゃいけないので、ちょっと面倒です。そのため、今回はテーマフォルダにあるfunctions.phpを編集して不要なタグを削除する方法を紹介します。
functions.phpを編集して不要なタグを削除する
まずは、/wp-content/themes/[使用しているテーマフォルダ] から functions.php をダウンロードしておきます。それぞれのタグの削除方法を以下に書きますので、環境に合わせて不要だと思うものをfunctions.phpに追記していってください。
※私の環境では確認できていませんが、タグの削除(特にバージョン情報)によってプラグインが動作しなくなることがあるかもしれません。functions.phpを修正する時は、事前にバックアップを取って作業してください。
WordPressのバージョン情報
WordPressでサイトを作成すると、以下のようなバージョン情報がヘッダーに追加されます。
<meta name="generator" content="WordPress 3.x.x" />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'wp_generator');
外部ツールを使ったブログ更新用のURL
外部ツールを使って記事を投稿するときのアドレスです。
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'rsd_link');
wlwmanifestWindows Live Writerを使った記事投稿URL
wlwmanifestWindows Live Writerを使って記事を投稿する場合は必要です。
<link rel="EditURI" type="application/wlwmanifest+xml" title="RSD" href="http://example.com/wp-includes/wlwmanifest.xml" />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'wlwmanifest_link');
デフォルトパーマリンクのURL
?p=[投稿ID]という形式のデフォルトパーマリンクのURLです。
<link rel='shortlink' href='http://example.com/?p=1329' />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'wp_shortlink_wp_head');
前の記事と後の記事のURL
該当記事の前と後の記事のURLです。
<link rel='prev' title='前の記事' href='http://example.com/prev' /> <link rel='next' title='次の記事' href='http://example.com/next' />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
RSSフィードのURL
RSSフィードのURLです。
<link rel="alternate" type="application/rss+xml" title="フィード" href="http://example.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="コメントフィード" href="http://example.com/comments/feed/" />
削除する場合は、以下をfunctions.phpに追記します。
remove_action('wp_head', 'feed_links_extra', 3);
コメントフィードだけ削除っていうのはできないみたいですね。もしやり方を知っている方いましたら、教えていただけるとありがたいです。
コメントフィードだけ削除したい場合は、remove_actionで一旦RSSフィードを全部削除しておいて、直接header.phpに以下のコードを記述します。
<link rel="alternate" type="application/rss+xml" title="フィード" href="<?php bloginfo('rss2_url'); ?>" />
まとめ
まとめて全部削除したい方は、以下のコードをfunctions.phpにコピペしてください。
remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_shortlink_wp_head'); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); remove_action('wp_head', 'feed_links_extra', 3);
プラグインをたくさん使っていると、いつの間にか<head>が長くなっているので、必要ないものは削除しておくとスッキリしますね。
Pingback: WordPressの自作テーマでプラグインが動かなかった時に絶対に確認すること | おれだよ!!!
大変役に立ちました。ありがとうございます。
誤字に気付いたので報告だけ。
wlwmanifestWindows Live Writerを使った記事投稿URL
link rel~
↑ここのソース
yoshi.yukiさん、コメントありがとうございます。
wlwmanifestがrsdになっていましたね。。。失礼しました。
Pingback: 【wordpress 関数】使っているテンプレートの中にあった関数の意味を記載していく - mania0905