0

複雑なタイトルで申し訳ありません。

私はこのコードを使用して、サブ子カテゴリとその下の投稿を表示しています。問題は、コードがサイトにあるすべてのサブ子カテゴリ (+ 投稿) を表示していることです。投稿に関連するサブカテゴリのみを表示したい。子 1 の下のサブ子カテゴリはすべて投稿に関連しているため、投稿が子オンに関連しているため、子オンの下にサブ子カテゴリを表示したいということができます。

カテゴリ構成 (年はタイトルにあります):

  • G
    • 子 1
      • ゲーム1年
        • 投稿はこちら
      • ゲーム2年目
        • 投稿はこちら

私のコード:

<?php
$cat_id = get_query_var( 'cat' );
$subcats = get_categories( 'child_of=' . $cat_id ); // child categories

class Cat_Walker extends Walker_Category {
    function end_el( &$output, $page, $depth = 0, $args = array() ) {
        $posts = get_posts( 'cat=' . $page->term_id );

        if ( sizeof( $posts ) > 0 ) {
            $output .= '<ul>';

            foreach ( $posts as $post ) {
                $output .= sprintf( '<li><a href="%1$s">%2$s</a></li>', get_permalink( $post->ID ), $post->post_title );
            }

            $output .= '</ul>';
        }

        $output .= '</li>';
    }
}

foreach ( $subcats as $subcat ) {
    $subsubcats = get_categories( 'child_of=' . $subcat->term_id ); // sub child categories

    foreach ( $subsubcats as $subsubcat ) {
        $args = array(
            'title_li'         => '',
            'show_option_none' => '',
            'taxonomy'         => 'category',
            'child_of'         => $subsubcat->term_id,
            'walker'           => new Cat_Walker( )
        );

        wp_list_categories( $args );
    }
}

?>

何か案は?

前もって感謝します!

4

1 に答える 1

0

間違ったカテゴリ ID を取得していると思います。これを使用する必要があります:

$category = get_category(get_query_var('cat'));
$cat_id = $category->cat_ID;

それ以外の

$cat_id = get_query_var( 'cat' );
于 2013-03-11T06:46:35.320 に答える