ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
get_header 関数とは
get_header() は WordPress のテンプレートタグで、現在有効なテーマの header.php ファイルを読み込んで出力します。ページごとに同じヘッダ(ロゴ・グローバルナビ・<head> タグなど)を再利用するのが目的で、ほぼすべてのテーマファイル冒頭で呼ばれます。
構文
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(フォールバック)
子テーマでオーバーライドできる仕組みなので、子テーマ作成時はこの仕様を理解しておくと便利です。
基本的な使い方
<?php
// 最も一般的な使い方(header.php を読み込む)
get_header();
?>
<main>
<?php while ( have_posts() ) : the_post(); ?>
<article>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
</article>
<?php endwhile; ?>
</main>
<?php get_footer(); ?>
ページ毎にヘッダを切り替える
トップページとサブページでヘッダを変えたい場合、$name 引数を渡します。
<?php
// front-page.php
get_header( 'front' ); // header-front.php を読み込む
?>
<?php
// page.php
get_header(); // header.php を読み込む
?>
<?php
// single.php(記事ページ)
get_header( 'single' ); // header-single.php を読み込む
?>
$args で変数を渡す(WP 5.5+)
<?php
// テンプレートを呼ぶ側
get_header( null, array(
'class' => 'home-hero',
'show_search' => true,
) );
?>
<!-- header.php 内 -->
<header class="<?php echo esc_attr( $args['class'] ?? '' ); ?>">
<?php if ( $args['show_search'] ?? false ) : ?>
<?php get_search_form(); ?>
<?php endif; ?>
</header>
$args の中身はテンプレート内で $args 変数として参照できます。
典型的な header.php の中身
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php wp_title(); ?></title>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<header class="site-header">
<h1 class="site-title">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">
<?php bloginfo( 'name' ); ?>
</a>
</h1>
<?php
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_class' => 'main-nav',
) );
?>
</header>
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: 技術的には可能だが、<html> / <head> を二重出力する事故になるので非推奨。
Q: ブロックテーマ(FSE)でも使う?
A: ブロックテーマでは theme.json + block templates が中心で、PHP テンプレートと get_header() は使わない。クラシックテーマでのみ必須。
関連: get_footer 関数 / get_sidebar 関数
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- do_action
- get_header
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?