web-dev-qa-db-ja.com

複数のカテゴリ用の1つのカテゴリテンプレート

私は私の投稿に 'events'のタグを付けた一覧を表示するcategory-events.phpを持っていますが、 'events'の子カテゴリでは動作しません。

すなわち、私はいくつかの投稿 'イベント'とイベント '子供'展 'のタグがあります。自動的にcategory-events.phpを使用すると思いましたが、使用しません。私はいくつかの「イベント」の子カテゴリのためにcategory-events.phpを使用したいのでこれは可能ですか。

それが理にかなっていることを願っていて、どんなポインタでも歓迎します。

ダン。

1
v3nt
0
v3nt

最初にこのコードをあなたのテーマのfunctions.phpに貼り付けてください。

function post_is_in_descendant_category( $cats, $_post = null ){
    foreach ( (array) $cats as $cat ) {
        // get_term_children() accepts integer ID only
        $descendants = get_term_children( (int) $cat, 'category');
        if ( $descendants && in_category( $descendants, $_post ) )
            return true;
    }
    return false;
}

それから一番上のcategory.phpかarchive.php(あなたのテーマによります)に追加してください

<?php if (post_is_in_descendant_category(33)){
 include (TEMPLATEPATH . '/category-events.php'); 
 exit;
} ?>

33を「イベント」カテゴリのIDに変更します。

それがしているのは、現在のカテゴリがイベントの子カテゴリであるかどうか、そして正しい場合は正しいテーマファイルを使用しているかどうかをチェックすることです。

1
Bainternet