WordPressのテンプレートファイルを読み込むテンプレートタグ

WordPressのテーマにはさまざまなファイルがあり、その中には複数の箇所で使用するためのものもあります。そしてそのファイルを呼び出すためのインクルード関数というものがあります。

決まったファイルを呼び出す関数と任意のファイルを呼び出す関数とそれぞれメモしていきます。

決まったファイルを呼び出すWordPress関数

WordPressではヘッダーには header.php、やフッター には footer.php というように、あらかじめこの用途で使うならこのファイルを使用する、というテンプレートパーツがあります。
こういった決められたファイルはそれぞれに呼び出す関数が用意されています。

ヘッダー(header.php の呼び出し)

<?php get_header(); ?>

フッター(footer.php の呼び出し)

<?php get_footer(); ?>

サイドバー(sidebar.php の呼び出し)

<?php get_sidebar(); ?>

ヘッダー・フッター・サイドバーはテンプレートパーツを分けて呼び出すこともできます。例えばヘッダーなら、get_header(); なら header.php が読み込まれますが、header-[name].php というファイルを作って get_header('name'); と指定するとそのファイルが読み込まれます。

検索フォーム(searchform.php の呼び出し)

<?php get_search_form(); ?>

コメント(comments.php の呼び出し)

<?php comments_template(); ?>

任意のファイルを呼び出すWordPress関数

上述した内容以外でも各所で同じコードを使いたいことがあります。

新しいファイルを作成するたびにコピペしたり、修正が必要になった時にそのコードを書いているファイルを全て修正するのは大変です。
同じ記述であれば一つのファイルにまとめて各所で呼び出した方が、同じコードをそれぞれのファイルで書くより手間が省けます。

こういった場合に任意のファイルを呼び出す関数も用意されています。

get_template_part()

get_template_part() は引数に指定したファイルを読み込む関数です。引数にはスラッグ名と特定のテンプレート名を指定することができます。

get_template_part($slug, $name);

例えば test.php を読み込みたい時は以下のコードを記述します。「.php」は不要です。
「ファイル名」ではなく、「ファイルパス」を指定するイメージです。

<?php get_template_part('test'); ?>

テーマフォルダの直下ではなく、さらにフォルダを作ってその中にある場合は以下のような形にします。

<?php get_template_part('template/test'); ?>

test-index.php や test-single.php といったハイフンで区切られたファイル名の場合は以下のような記述になります。test-index.php であれば「test」が $slug 、ハイフンで区切られた後の「index」が $name に当てはまります。

get_template_part('test', 'index'); // 'test-index.php'
get_template_part('template/test', 'single'); // 'template/test-single.php'

get_template_part('test-index'); と記述しても test-index.php の読み込みはされます。
ただテンプレートファイルの種類ごとに分けておいた方が便利です。

test.php, test-index.php を作成していた場合、get_template_part('test', 'index'); としておけば test-index.php がなかった場合 test.php が読み込まれます。get_template_part('test-index'); と記述している場合は test-index.php がなければ何も読み込まれません。

カテゴリー : WordPress

TOPへ