カテゴリとサブカテゴリに別のテンプレートを使用したいカテゴリテンプレートはcategories.phpに設定されています。サブカテゴリテンプレートをsubcategories.phpからロードすることは可能ですか。
テンプレート階層にはフィルタがあります すべてのタイプのテンプレート用。ここではcategory_template
を使用し、現在のカテゴリが親を持っているかどうかを確認し、その場合はsubcategory.php
ファイルをロードします。
function wpd_subcategory_template( $template ) {
$cat = get_queried_object();
if( 0 < $cat->category_parent )
$template = locate_template( 'subcategory.php' );
return $template;
}
add_filter( 'category_template', 'wpd_subcategory_template' );
機能を追加するためにコードを編集しました。子カテゴリごとに異なるテンプレートを作成したい場合があります。たとえば、カテゴリが次のようになっているとします。
そして、あなたは都市用に別のテンプレートが必要です。まず、市に子供がいるかどうかを調べ、そうでない場合は市のテンプレートを呼び出します。コードの残りの部分は、カテゴリに親があるかどうかを確認することです。
// Different template for subcategories
function wpd_subcategory_template( $template ) {
$cat = get_queried_object();
$children = get_terms( $cat->taxonomy, array(
'parent' => $cat->term_id,
'hide_empty' => false
) );
if( ! $children ) {
$template = locate_template( 'category-country-city.php' );
} elseif( 0 < $cat->category_parent ) {
$template = locate_template( 'category-country.php' );
}
return $template;
}
add_filter( 'category_template', 'wpd_subcategory_template' );