私は子テーマに取り組んでいます。子テーマのシンプルさを維持し、長期にわたるコードとメンテナンスの量を最小限に抑えるために、メインテンプレートファイルをオーバーライドしないことを強くお勧めします。
ループでは、親テーマのindex.phpテンプレートは次を使用します。
get_template_part( 'content' );
これにもたらすcontent.php、私はそれがより多くのように振る舞う持っているよget_template_part( 'content', get_post_format() );
ような異なるテンプレートにもたらすためにまたは類似のコンテンツaside.php作成せずに、など、index.phpのを上書きする子テーマに単一行の変更の親。
get_template_part()
で構成されます:
function get_template_part( $slug, $name = null ) {
do_action( "get_template_part_{$slug}", $slug, $name );
$templates = array();
$name = (string) $name;
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
私の場合、と呼ばれるアクションがあります get_template_part_content
私は次のようなものでアクションにフックすることができます:
add_action( 'get_template_part_content', 'child_post_styles', 10, 2 );
function child_post_styles ( $slug, $name ) {
if( false == $name ){
$name = get_post_format();
$templates = array();
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
}
これにより、目的のテンプレートを表示できるフック関数からの複製と、通常のlocate_template
呼び出しからの複製が明らかになりますget_template_part()
私は右のような愚かな何かをすることによって、私のテンプレートの一部を務めた後、レンダリング、またはページを終了せずに重複することなく、これを実現するための方法見つけるのトラブルを抱えているbreak
かをexit