たとえば、次のようなディレクトリがあるとします。
theme
- subfolder
- template.php
content-job-listing.php
テンプレートtemplate.phpからget_template_part('content', 'job-listing')
のようにget_template_partを呼び出そうとした場合(これは実際の名前ではなく一般的な名前です)、NULLを返します。
同様に、get_template_part('../content', 'job-listing')
を使用した場合もテンプレートを返すことができません。しかし、両方が同じディレクトリにある場合、最初のものはうまくいきます。
tのサブフォルダーにいるときにget_template_part()を呼び出しても機能しません。
get_template_part()
は、あなたがあなたのテーマのどこにいても、どれだけ深くても同じように働きます。それは常にテーマ(または子テーマ)ルートに対する相対を含みます。
だから、あなたがどこからでも以下を呼び出すならば:
get_template_part( 'content', 'job-listing' );
...(順番に)ロードしようとします。
child-theme/content-job-listing.php
parent-theme/content-job-listing.php
child-theme/content.php
parent-theme/content.php
テーマのサブディレクトリにある部分をロードするには、最初の引数にパスを使用するだけです。
get_template_part( 'path/to/file', 'optional-slug' );