web-dev-qa-db-ja.com

カテゴリのすべてのサブセットにテーマを設定

私は私がこのようにphpファイルの名前を設定するどんなカテゴリーにもテーマテンプレートを設定できることを知っています:category-16.php

しかし私のカテゴリには多くのサブセットがあります16。そのテンプレートをcategory16のサブセットすべてに設定してほしい。

どうやって?

1
Aria Maghsoody

これを実現するために必要な機能が2つあります。まず、カテゴリが16のサブカテゴリーかどうかを知る必要があります。これは cat_is_ancestor_of です。次に、あなたは locate_template のように、あなたはそのカテゴリーに16のテンプレートを使わせる必要があります。これを知っていれば、このようにカテゴリページに使用するテンプレートを決定する関数にフィルタを構築できます。

add_filter ('category_template', 'wpse24089_category_template');

function wpse24089_category_template( $template ) {
    $current_cat = get_queried_object_id();
    if (cat_is_ancestor_of (16, $current_cat))
        $template = locate_template( 'category-slider.php' );
    return $template;
    }
1
cjbj