タイトル: get_header
SEOタイトル: WordPress get_header 関数の使い方(テーマヘッダ読み込み・$name 引数・$args パラメータ)
| この記事の要点 |
|
get_header 関数とは
get_header() は WordPress のテンプレートタグで、現在有効なテーマの header.php ファイルを読み込んで出力します。ページごとに同じヘッダ(ロゴ・グローバルナビ・
構文
get_header( string $name = null, array $args = array() ): void|false
| 引数 | 型 | 意味 |
|---|---|---|
| $name | string | 読み込むヘッダ名。header-{$name}.php を探す。null なら header.php |
| $args | array | テンプレートに渡す変数の連想配列(WP 5.5+) |
戻り値は void(通常)または false(テンプレート発見できず)。WP 5.5 以降は void|false。
テンプレート読み込みの優先順位
get_header('foo') と呼ぶと WordPress は次の順で探します。
- 子テーマの
header-foo.php - 親テーマの
header-foo.php - 子テーマの
header.php - 親テーマの
header.php - コア
wp-includes/theme-compat/header.php(フォールバック)
子テーマでオーバーライドできる仕組みなので、子テーマ作成時はこの仕様を理解しておくと便利です。
基本的な使い方
ページ毎にヘッダを切り替える
トップページとサブページでヘッダを変えたい場合、$name 引数を渡します。
$args で変数を渡す(WP 5.5+)
'home-hero',
'show_search' => true,
) );
?>
$args の中身はテンプレート内で $args 変数として参照できます。
典型的な header.php の中身
>
>
'primary',
'menu_class' => 'main-nav',
) );
?>
wp_head() はプラグインやコアが head 内に出力するためのフックなので、テーマには必須。
関連フック
| フック | 種類 | 用途 |
|---|---|---|
| get_header | action | get_header() 実行時、テンプレート読み込み前に発火 |
| get_header_template | filter | 読み込まれるテンプレートのパスを変更 |
| wp_head | action | header.php 内の wp_head() で発火(CSS / JS 出力) |
| wp_body_open | action | body 開始直後(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 関数