WordPressのオリジナルテーマとプラグイン

オリジナルのテーマを利用していると、動作しないプラグインが出てくるケースがあります。こうしたプラグインの多くはjQueryなどのライブラリを利用するプラグインで、その場合、動作させるためには生成するページに<script>の設定を出力し、ライブラリを読み込むようにしなければなりません。

しかし、こうしたプラグインは<script>の設定を個別には出力せず、WordPressを通して出力する仕組みになっています。これは、複数のプラグインが個別に<script>を出力し、ライブラリが重複するのを防ぐためです。

WordPressを通して重複関係がチェックされ、最適化された設定は、<?php wp_head(); ?>または<?php wp_footer(); ?>で出力されます。そのため、オリジナルのテーマにこれらのテンプレートタグを追加すれば、動作しなかったプラグインが動くようになる可能性が高くなります。

なお、プラグインが使用する設定はHTMLのヘッダー部分およびページの末尾に記述するのに適した形で出力されますので、<?php wp_head(); ?>は</head>の前に、<?php wp_footer(); ?>は</body>の前に追加することが推奨されています。

<?php wp_head(); ?>の記述

<head>
...
<?php wp_head(); ?>
</head>

<?php wp_footer(); ?>の記述

...
<?php wp_footer(); ?>
</body>
</html>

また、<?php wp_head(); ?>はプラグインの設定以外にも、次のような情報を出力します。

<?php wp_head(); ?>が出力する主な情報

  1. <link rel=”alternate” type=”application/rss+xml” title=”ページのコメントのフィード” href=”http://…/feed/” />
  2. <link rel=”EditURI” type=”application/rsd+xml” title=”RSD” href=”http://…/xmlrpc.php?rsd” />
    <link rel=”wlwmanifest” type=”application/wlwmanifest+xml” href=”http://…/wp-includes/wlwmanifest.xml” />
  3. <link rel=’index’ title=’~’ href=’http://…/’ />
    <link rel=’prev’ title=’~’ href=’http://…/’ />
    <link rel=’next’ title=’~’ href=’http://…/’ />
  4. <meta name=”generator” content=”WordPress 3.0.1″ />

A … コメントフィードの情報
B … Windows Live Writerなどの外部アプリを利用するのに必要な情報
C … インデックスページや前後のページなど、表示中のページに関連するページの情報
D … 生成に使用したWordPressの情報

これらの情報は、必要に応じて出力しないように指定することができます。出力しないようにするためには、functions.phpに以下の設定を追加します。

情報を出力しないようにする設定

  1. remove_action(‘wp_head’,’feed_links_extra’,3);
  2. remove_action(‘wp_head’,’rsd_link’);
    remove_action(‘wp_head’,’wlwmanifest_link’);
  3. remove_action(‘wp_head’,’index_rel_link’);
    remove_action(‘wp_head’,’adjacent_posts_rel_link_wp_head’,10,0);
    remove_action(‘wp_head’,’parent_post_rel_link’,10,0);
    remove_action(‘wp_head’,’start_post_rel_link’,10,0);
  4. remove_action(‘wp_head’,’wp_generator’);