私のブログ投稿にはこのカテゴリ構造があります。
祖父母カテゴリ - >親カテゴリ - >カテゴリ1、カテゴリ2、カテゴリ3
投稿は孫カテゴリの1つにのみ割り当てられており、その特定の祖父母を持つすべてのカテゴリに特定のテンプレートを使用したいのですが投稿リストに表示される祖父母).
function get_custom_cat_template($single_template) {
global $post;
if ( in_category( 'Grandparent Category' )) {
$single_template = dirname(__FILE__) . '/single-template.php';
}
return $single_template;
}
add_filter( "single_template", "get_custom_cat_template" ) ;
私は、投稿が祖父母のカテゴリーにも割り当てられていない場合、関数in_category()が機能しないことに気付きましたが、私は言う何かが欲しいのですが -
その投稿カテゴリにその祖父母がいる場合は、この特定のテンプレートを使用してください。
ご協力ありがとうございます。
あなたのコードを更新しましょう:)
あなたの投稿に祖父母のカテゴリーを選択する必要はありません。まず祖父母のカテゴリー名を取得する必要があります。これが関数です。
function get_grandparents_category_salgur( $id) {
$parent = get_term( $id, 'category' );
if ( is_wp_error( $parent ) )
return $parent;
if ( $parent->parent && ( $parent->parent != $parent->term_id ) ) {
$go_get_gp = get_term( $parent->parent, 'category' );
}
$grandparent = get_term( $go_get_gp->parent, 'category' );
return $grandparent->name;
}
このコードは祖父母のカテゴリー名を見つけます。その後、私たちはあなたの関数で定義することができます。
function get_custom_cat_template($single_template) {
global $post;
$postcat = get_the_category( $post->ID );
$grandparent_name = get_grandparents_category_salgur( $postcat[0]->term_id);
if ( $grandparent_name === 'Grandparent Category' ) {
$single_template = dirname(__FILE__) . '/single-template.php';
}
return $single_template;
}
add_filter( "single_template", "get_custom_cat_template" );