0

抱歉标题复杂。

我正在使用此代码,以显示我的子子类别及其下的帖子。问题是代码显示了我在网站上拥有的所有子子类别(+ 帖子)。我只想显示与帖子相关的子类别。Child one 下的所有子子类别都与帖子有关,因此您可以说我想显示 child on 下的子子类别,因为帖子与 child on 相关。

类别结构(年份在标题中):

  • G
    • 孩子 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 回答