web-dev-qa-db-ja.com

サブカテゴリに特定のテンプレートを設定する方法

サブカテゴリに親と同じテンプレートを使用させることについての投稿がいくつかありますが、少し異なることをしたいと思います。

カテゴリ67があり、67のすべてのサブカテゴリに特定のテンプレートを使用したいと思います。デフォルトのテンプレートではなく、カスタムのcategory-67.phpテンプレートでもありません。

それ、どうやったら出来るの?

Functions.phpに以下のコードがありますが、category-67のテンプレートも変更しているようです

// use specific template depending on category
function myTemplateSelect() {
    if (is_category() && !is_feed()) {
        if (is_category(get_cat_id('67')) || cat_is_ancestor_of(get_cat_id('67'), get_query_var('cat'))) {
            load_template(TEMPLATEPATH . '/category-slider.php');
            exit;
        }
    }
}

 add_action('template_redirect', 'myTemplateSelect');

最終的に私はこれにもう少しカテゴリを追加したいと思うでしょう。

何か案は?

ありがとう

1
C-M

category_templateフィルタを使うことをお勧めします - 現在のカテゴリが67の先祖であるかどうかを確認するだけです。

function wpse_179617_category_template( $template ) {
    if ( cat_is_ancestor_of( 67, get_queried_object_id() /* The current category ID */ ) )
        $template = locate_template( 'category-slider.php' );
    return $template;
}

add_filter( 'category_template', 'wpse_179617_category_template' );
4
TheDeadMedic