この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: get_header
SEOタイトル: WordPress get_header 関数の使い方(テーマヘッダ読み込み・$name 引数・$args パラメータ)

この記事の要点
  • get_header() はテーマの header.php を読み込む WordPress テンプレートタグ
  • $name 引数で header-{$name}.php を読み込み — ページタイプ毎にヘッダを切り替えられる
  • WP 5.5+ では第 2 引数 $args(配列)でテンプレートに変数を渡せる
  • 対象ファイルが見つからない場合は、コアの wp-includes/theme-compat/header.php がフォールバックとして読み込まれる
  • get_header_template() フィルター / get_header アクションでヘッダ読み込み前後に処理を挿入可能
  • 関連: get_footer 関数 / get_sidebar 関数

get_header 関数とは

get_header() は WordPress のテンプレートタグで、現在有効なテーマの header.php ファイルを読み込んで出力します。ページごとに同じヘッダ(ロゴ・グローバルナビ・ タグなど)を再利用するのが目的で、ほぼすべてのテーマファイル冒頭で呼ばれます。

構文

get_header( string $name = null, array $args = array() ): void|false
引数意味
$namestring読み込むヘッダ名。header-{$name}.php を探す。null なら header.php
$argsarrayテンプレートに渡す変数の連想配列(WP 5.5+)

戻り値は void(通常)または false(テンプレート発見できず)。WP 5.5 以降は void|false

テンプレート読み込みの優先順位

get_header('foo') と呼ぶと WordPress は次の順で探します。

  1. 子テーマの header-foo.php
  2. 親テーマの header-foo.php
  3. 子テーマの header.php
  4. 親テーマの header.php
  5. コア wp-includes/theme-compat/header.php(フォールバック)

子テーマでオーバーライドできる仕組みなので、子テーマ作成時はこの仕様を理解しておくと便利です。

基本的な使い方


ページ毎にヘッダを切り替える

トップページとサブページでヘッダを変えたい場合、$name 引数を渡します。





$args で変数を渡す(WP 5.5+)

 'home-hero',
    'show_search' => true,
) );
?>


$args の中身はテンプレート内で $args 変数として参照できます。

典型的な header.php の中身


>

  
  
  <?php wp_title(); ?>
  

>

wp_head() はプラグインやコアが head 内に出力するためのフックなので、テーマには必須。

関連フック

フック種類用途
get_headeractionget_header() 実行時、テンプレート読み込み前に発火
get_header_templatefilter読み込まれるテンプレートのパスを変更
wp_headactionheader.php 内の wp_head() で発火(CSS / JS 出力)
wp_body_openactionbody 開始直後(GA タグ・Cookie 同意など)

注意点

  • functions.php で呼ばない — 初期化前は wp_head 等が動かない。テンプレート (single.php / page.php) の冒頭で呼ぶ
  • $name はファイル名の - 以降。header-mobile.php なら get_header('mobile')
  • ヘッダ内で大きな処理を行うとページ全体の生成が遅くなる — 重い処理はキャッシュ化

関連関数

関数役割
get_footer()footer.php を読み込む
get_sidebar()sidebar.php を読み込む
get_template_part()任意のテンプレート部品を読み込む
locate_template()テンプレートのパスを取得(読み込まずに)

FAQ

Q: get_header() を呼ばないとどうなる?
A: wp_head() フックが動かず、プラグインが出力する CSS/JS が読み込まれない。トラッキングや表示も壊れる。

Q: 同じテンプレートで複数回呼んでいい?
A: 技術的には可能だが、 / を二重出力する事故になるので非推奨。

Q: ブロックテーマ(FSE)でも使う?
A: ブロックテーマでは theme.json + block templates が中心で、PHP テンプレートと get_header() は使わない。クラシックテーマでのみ必須。

関連: get_footer 関数 / get_sidebar 関数