WordPressをカスタマイズする時に、修正する場所を探しに処理を追うのですが、そもそもPHPの理解が中途半端なので、調べるのに時間がかかっていました。
なので、ここが分かれば他のも分かるかもというところを少しずつまとめられればいいなと思います。
今回はWordPressでよく見かける「get_template_part」関数についてまとめたいと思います。
最初の頃、この関数を使うとテンプレートファイルを読み込むというのはわかるのですが、具体的にどのファイルの関数を読み込むのかよく分かりませんでした。
(functon 関数名()みたいなところを読み込むと思ってました。)
結論からいうと関数の書き方は「get_template_part('テンプレートファイル名')」になっていて、「テンプレートファイル名.php」が呼び出されるファイルになります。
なお、テンプレートファイルとはHTML表示する際の雛形となるファイルのことで、WordPressに設定したcocoonのようなテーマで準備されていますが、自分で作成することも可能です。
目次
get_template_part関数の使い方
これからテーマのcocoonを使って、投稿ページの本文に「AAAA」「BBBB」という文字を表示するプログラムを例にして具体的な関数の書き方を説明します。
(正確には投稿本文を表示したあとの次の行に表示します。)
前提:テーマの構成
まずはcocoonのテーマの構成は、簡略化していますが次の通りです。
下図のうち、content.php以外のファイルが検証用に追加したファイルです。
記事ページを表示しているファイルはcontent.phpですので、このファイルの中に「get_template_part」関数を書いて表示したいファイルを呼び出します。
今回は記事本文を表示するthe_content関数の直後にget_template_part関数を書きました。
get_template_part関数の書き方
先ほど書いた通り、get_template_part関数の書き方は次のようになります。
<?php get_template_part( 'テンプレートファイル名' ); ?>
指定する時にファイルの拡張子(.php)は不要です。
また、テンプレートファイルを指定する場合には以下の例のようにテーマディレクトリから相対パスで指定する必要があります。
例)content_sub.phpを指定する場合
get_template_part('tmp/content_sub')
処理の流れ
実行する処理の流れは以下のようになります。
処理の詳細
1.content.phpからcontent_sub.phpを呼び出す。
2.content_sub.phpからtemplate_file.phpを呼び出し、「AAAA」を表示する。
3.content_sub.phpからsub_template_file.phpを呼び出し、「BBBB」を表示する。
まとめ
これで記事ページの本文に「AAAA」と「BBBB」が表示できるようになりました。
もし表示されない場合はファイル名が間違っているか、プログラムが間違っている可能性があるので、エラーログを確認してみてください。