
WordPressには、ヘッダーやフッターなど決まった用途のテンプレートファイルを呼び出す専用の関数が用意されています。これらはインクルードタグと呼ばれ、get_header() や get_footer() などがこれにあたります。
テーマのどのテンプレートファイルからでも呼び出せるため、共通パーツを一箇所にまとめて管理できるのが特徴です。
この記事では、WordPressが標準で用意しているインクルードタグを一通りまとめていきます。
任意のファイルを読み込む get_template_part() についてはこちら。
→ get_template_part() の使い方
get_header()
get_header() はテーマ内の header.php を読み込む関数です。
<?php get_header(); ?>
引数に名前を指定すると、header-{name}.php を読み込みます。
<?php get_header('top'); ?>ページの種類によってヘッダーを切り替えたい場合に便利です。たとえばトップページだけ別のヘッダーを使いたい場合、front-page.php に get_header('top') と記述します。
get_footer()
<?php get_footer(); ?>
<?php get_footer('simple'); ?>get_sidebar()
get_sidebar() はテーマ内の sidebar.php を読み込む関数です。
<?php get_sidebar(); ?>
<?php get_header('news'); ?>同じテンプレート内で複数回呼び出すことができます。左右にサイドバーを配置する場合などに使えます。
<?php get_sidebar('left'); ?>
<?php get_sidebar('right'); ?>get_search_form()
get_search_form() は検索フォームを表示する関数です。
テーマ内に searchform.php があればそのファイルを読み込み、なければWordPressが生成するデフォルトの検索フォームが表示されます。
<?php get_search_form(); ?>
引数に true(デフォルト)を渡すとHTMLを直接出力し、false を渡すと文字列として返します。
$form = get_search_form(false); // 文字列として取得comments_template()
comments_template() はコメントテンプレート(comments.php)を読み込む関数です。
<?php comments_template(); ?>
通常は single.php などの投稿テンプレート内で使います。
引数にファイルパスを渡すと、任意のテンプレートを読み込むことができます。パスはテーマフォルダからの相対パスで指定します。
<?php comments_template('/comments-custom.php'); ?>投稿タイプによって切り替える
<?php
if (get_post_type() === 'product') {
comments_template('/comments-product.php');
} else {
comments_template();
}
?>テンプレートに値を渡す($args)
WordPress 5.5 から、get_header() ・ get_footer() ・ get_sidebar() の最後の引数に配列を渡せるようになりました。これを使うと、値を引き継ぐことができます。
第二引数に配列を渡すことで、ヘッダーテンプレート内に値を引き継ぐことができます。
<?php get_header('top', ['show_nav' => false]); ?>header-top.php 内では $args['show_nav'] で値を受け取れます。
いつ使うか
たとえば、トップページだけナビゲーションを非表示にしたい場合を考えます。
これまでは header.php 内で is_front_page() を使って判定するか、グローバル変数を使う方法が一般的でした。$args を使うと、呼び出し元から「こういう状態で読み込んでほしい」という情報を渡せるようになり、テンプレートの汎用性が高まります。
基本的な使い方
<?php
$args = ['show_nav' => false];
get_header(null, $args);
?>
...
<?php get_footer('simple', ['year' => date('Y')]); ?>カスタムファイル名を使わない場合、第一引数は null を指定します。
<?php get_header('top', ['show_nav' => false]); ?>
// → header-top.php に ['show_nav' => false] を渡す<?php if ($args['show_nav']) : ?>
<nav><!-- ナビゲーション --></nav>
<?php endif; ?>受け取る変数名は $args で固定です。どの関数から渡しても、受け取る側では常に $args という名前でアクセスします。
複数の値を渡す場合
配列なので複数のキーを自由に追加できます。
<?php
get_sidebar('news', [
'category' => 'tech',
'limit' => 5,
]);
?>sidebar-news.php 内では $args['category'] や $args['limit'] で受け取れます。
インクルードタグ一覧
get_header ・ get_footer ・ get_sidebar の3つは引数の仕組みが共通しており、WordPress 5.5以降は第二引数で値を渡すことも可能です。
| 関数 | 読み込むファイル | カスタム指定 |
|---|---|---|
get_header() | header.php | header-{name}.php |
get_footer() | footer.php | footer-{name}.php |
get_sidebar() | sidebar.php | sidebar-{name}.php |
get_search_form() | searchform.php | ― |
comments_template() | comments.php | 引数でパス指定 |
get_template_part() | 任意のファイル | 詳細はこちら |
カテゴリー : WordPress