wp_headとは?テーマに必要なフック解説【wp_footerとの関係性も解説】

WordPressのwp_head関数とテーマフックを解説するアイキャッチ画像。左にWordPressロゴとタイトル、右下にフックとWebページのアイコンが配置されている。
WordPressテーマ開発において重要な「wp_head」関数と「wp_footer」との関係性を分かりやすく解説します。

ordPressでテーマを自作・カスタマイズしていると、テンプレートファイル内でよく目にする関数がいくつかあります。中でも**wp_head()wp_footer()**は、テーマ開発において「なくてはならない存在」です。

この記事では、

  • wp_head()の役割と使い方
  • wp_footer()との関係性
  • それぞれがなぜ必要なのか

を、WordPress中級者向けに分かりやすく解説していきます。

wp_head()とは?

wp_head()は、WordPressがHTMLの<head>タグ内に必要な情報を出力するためのアクションフックです。

<?php wp_head(); ?>

と記述することで、WordPress本体・プラグイン・テーマなどが必要とするCSSやJavaScript、メタ情報などを自動で挿入できるようになります。

なぜwp_head()が必要?

自作テーマでこれを入れ忘れると、次のような問題が発生します。

  • プラグインのCSSやJavaScriptが読み込まれない
  • WordPressのメタ情報(REST API、oEmbed、emoji対応など)が出力されない
  • SEOやSNS向けのタグが消える
  • ログイン中の管理バーが正常に表示されない

つまり、**wp_head()を入れないとテーマが「WordPressとして正しく機能しない」**ことになります。

どこに書く?

通常は、header.phpの中の<head>タグ閉じる直前に記述します:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo( 'charset' ); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?php wp_title(); ?></title>
  <?php wp_head(); ?>
</head>

wp_head()で挿入される主な要素

  • WordPress本体:RSSフィード、REST APIリンク、emoji対応JSなど
  • プラグイン:外部スタイル・スクリプト、SEO・広告タグなど
  • テーマ:Google Fontsやライブラリの読み込みなど(enqueue済みのもの)

カスタマイズ例(独自タグ追加)

add_action( 'wp_head', 'my_custom_meta_tag' );
function my_custom_meta_tag() {
  echo '<meta name="author" content="Your Name">';
}

wp_footerとの関係性

wp_head()と対をなす存在として、**wp_footer()**があります。

<?php wp_footer(); ?>

こちらは、HTMLの</body>直前にJavaScriptやトラッキングコードを挿入するためのアクションフックです。

なぜwp_footer()が必要?

  • プラグインのJavaScriptが正常に動作する
  • Googleアナリティクスやタグマネージャーが正しく挿入される
  • 管理バーやブロックエディター関連の機能が動作する
  • 'in_footer' => true でenqueueされたスクリプトがここに出力される

wp_footer()がないと、表示上は問題なく見えても、裏で多くの処理が機能しなくなる可能性があります。

どこに書く?

通常はfooter.php</body>直前に記述します:

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

wp_head()wp_footer()の比較

比較項目wp_head()wp_footer()
位置<head>タグ内の閉じる直前<body>閉じる直前
主な役割CSS・meta情報・初期スクリプトの出力JavaScript・トラッキングコード等の出力
影響範囲表示準備・初期化処理表示後の追加処理・機能拡張
必要性非常に高い(ないと不具合)同様に必須(JS系不具合の原因に)

どちらか片方だけでなく、両方をセットで使用することがWordPressテーマの基本ルールです。

まとめ

  • wp_head()はHTMLの<head>内に必要情報を出力するためのフック
  • wp_footer()</body>直前にスクリプトや追跡コードを出力するフック
  • 自作テーマには両方必須!ないとプラグインやWordPress本体が正しく動かなくなる
  • それぞれの位置に正しく記述することで、テーマの「互換性」「拡張性」が高まる

参考リンク

関連記事