フォルダでget_template_part()を使用する方法はありますか?私のメインフォルダにはたくさんのファイルがあります。再利用可能なすべての要素を別々のファイルに入れるためです。それからそれらをフォルダーに入れたいのですが。
それに関する情報はCodexにありません: http://codex.wordpress.org/Function_Reference/get_template_part
実際、テーマディレクトリに/partials/
というフォルダーがあり、そのフォルダーにlatest-articles.php
、latest-news.php
、latest-statements.php
などのファイルがあり、これらのファイルをロードします。 get_template_part()
を使用:
get_template_part('partials/latest', 'news');
get_template_part('partials/latest', 'articles');
get_template_part('partials/latest', 'statements');
ファイル名から.php
を省略することを忘れないでください。
そうではないと思います。コーデックスで知りたくない場合は、ソースへのリンクをたどり、コードを自分で見て管理してください。
見たところ、get_template_part関数は次のように定義されています。
function get_template_part( $slug, $name = null ) {
do_action( "get_template_part_{$slug}", $slug, $name );
$templates = array();
if ( isset($name) )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
このことから、get_template_part関数は意図したphpファイル名を作成して関数locate_templateを呼び出すだけであることがわかります。これは役に立たないので、locate_template関数についても調べました。
function locate_template($template_names, $load = false, $require_once = true ) {
$located = '';
foreach ( (array) $template_names as $template_name ) {
if ( !$template_name )
continue;
if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
$located = STYLESHEETPATH . '/' . $template_name;
break;
} else if ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
$located = TEMPLATEPATH . '/' . $template_name;
break;
}
}
if ( $load && '' != $located )
load_template( $located, $require_once );
return $located;
}
Get_template_partから呼び出されたphpファイルの検索テンプレート検索を取得します。しかし、あなたは自分のコードからlocate_templateを直接呼び出すすることができます。そしてこれは便利です。
Get_template_part( 'loop-sigle.php')関数の代わりにこのコードを試してください(あなたのファイルはテーマの中のmydirにあります):
locate_template( 'mydir/loop-single.php', true, true );
関数get_template_part()
のメモには次のように書かれています。
ノート
- 用途:locate_template()
- 用途:do_action() 'get_template_part _ {$ slug}'アクションを呼び出します。
Wichでは、 locate_template()
を使用することができます。
TEMPLATEPATHの前にSTYLESHEETPATHを検索して、親テーマから継承したテーマが1つのファイルをオーバーロードできるようにします。
使用したいサブディレクトリでTEMPLATEPATH
を定義した場合、get_template_part()
はサブディレクトリ内のファイルを検索します。