get_header は、WordPress のテーマファイル内でヘッダー部分のテンプレート(通常は header.php)を読み込むためのテンプレートタグです。このタグを使うことで、ヘッダー部分のデザインや構成を他のテンプレートファイル(例: index.php, single.php, page.php など)に共通で適用できます。
機能の説明
基本的に WordPress テーマの全ページに共通するヘッダー部分(ナビゲーションバー、ロゴ、メニューなど)を一箇所にまとめ、再利用するためのものです。
使い方の解説
get_header を使うことで、ページごとに異なるヘッダー部分を個別にコーディングする手間が省けます。通常、header.php 内には以下の要素が含まれます。
- DOCTYPE宣言やHTMLタグの開始
- WordPressのヘッダー情報(
wp_head()を含む) - サイトのロゴやナビゲーションバー
- グローバルメニュー
また、get_header は引数を取ることができ、カスタムヘッダーを読み込むために役立ちます。例えば、特定のページや投稿タイプで異なるヘッダーを使いたい場合、get_header('custom') とすることで header-custom.php というファイルを読み込むことができます。
使用例
基本的な使い方(デフォルトのヘッダー)
header.php を呼び出して、ヘッダー部分を読み込みます。通常は、index.php, single.php, page.php などのテンプレートファイル内で使用されます。
<?php get_header(); ?>カスタムヘッダーを読み込む例
header-custom.php というファイルを読み込みます。例えば、特定のページや投稿タイプでヘッダーレイアウトを変更したい場合に使います。header-custom.php は wp-content/themes/your-theme/ ディレクトリに配置されている必要があります。
<?php get_header('custom'); ?>一緒に使うことが多い関連タグ
get_footer()
ページのフッター部分を読み込むためのタグ。footer.php を呼び出して、ヘッダー同様、共通部分としてフッターを管理します。
使用例
ページの冒頭で get_header() を使い、ページの終了時に get_footer() を使ってフッターを読み込みます。これにより、全ページで統一感のあるデザインが維持できます。
<?php
get_header(); // ヘッダーを読み込み
?>
<!-- ページのコンテンツ部分 -->
<div class="content">
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
</div>
<?php
get_footer(); // フッターを読み込み
?>get_sidebar()
サイドバー部分を読み込むためのタグ。sidebar.php を呼び出して、サイドバーのデザインや内容を共通化します。
wp_head()
ヘッダー内にWordPressが必要とするスクリプトやメタ情報を挿入する関数で、header.php の中で必ず呼び出されるべきものです。テーマの機能性に影響するため、header.php 内に忘れずに追加する必要があります。
wp_head() を使った header.php の例
wp_head() は header.php の <head> タグ内で使用され、テーマに必要なスクリプトやスタイルシートが正しく挿入されるようにします。また、body_class() で <body> タグにクラスを追加し、ページごとのスタイルを設定することが可能です。
<!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('|', true, 'right'); ?></title>
<?php wp_head(); // WordPressのヘッダーに必要な情報を追加 ?>
</head>
<body <?php body_class(); ?>>
<header>
<h1><?php bloginfo('name'); ?></h1>
<nav>
<?php wp_nav_menu(array('theme_location' => 'primary')); ?>
</nav>
</header>body_class()
<body> タグ内に追加して、現在表示しているページや条件に応じたクラスを自動的に付与する関数です。これにより、特定のページに対してカスタムCSSを簡単に適用することができます。
get_template_part()
ヘッダーの一部を get_template_part() を使って分割し、管理しやすくすることも可能です。
<?php get_template_part('template-parts/header', 'custom'); ?>追加情報で取得したい場合
現在使用中のヘッダーファイルを取得する
現在使用されているテンプレートファイルを確認するには、get_template_part() や debug_backtrace() を使う方法があります。
<?php
global $template;
echo basename($template);
?>使用する事で想定されるトラブル
header.php が存在しないエラー
テーマ内に header.php ファイルが存在しない場合、get_header() がエラーを引き起こす可能性があります。この場合、正しいテーマディレクトリに header.php を作成する必要があります。
wp_head() の呼び出し忘れ
wp_head() を header.php で呼び出していないと、WordPressプラグインやテーマの重要なスクリプト、メタタグ、CSSが正しく動作しない場合があります。
カスタムヘッダーが読み込まれない
get_header('custom') を使用した場合に、header-custom.php が正しい場所(テーマディレクトリ)に存在しないと、標準の header.php が読み込まれてしまう可能性があります。
ページ固有のスタイルやスクリプトの不具合
body_class() が適切に使われていないと、特定のページで正しいスタイルやスクリプトが適用されないことがあります。
Q&A
まとめ
get_header() は WordPress テーマ開発の基本的なテンプレートタグで、全ページに共通するヘッダーを読み込むために使われます。カスタマイズや動的な内容の追加が容易であり、特定の条件下で異なるヘッダーを読み込むことも可能です。 wp_head() や get_footer() などと組み合わせて、ページ全体の統一感を維持しながら、柔軟なレイアウトを構築するための重要なタグです。
コメント