如何只显示最后一个子类别的帖子?

时间:2015-07-25 作者:tousall

我有一个层次分类树,这意味着最多有3-4个子类别的帖子。单击主页中的类别链接时,我会被重定向到类别页面。

我需要检查当前类别是否没有子类别,然后显示帖子,但如果有子类别,则只显示子类别标题和描述,根本没有帖子。接下来,如果单击子类别标题,请再次检查该子类别是否有子类别。如果有,显示标题和说明;如果没有,则显示与该子类别相关的帖子。

到目前为止我做了什么(代码添加到类别页面):

获取当前类别的ID:

   $CategoryPar = get_category( get_query_var( \'cat\' ) ); 
   $cat_id = $CategoryPar->cat_ID;
检查当前类别是否有子类别/子类别并打印它们:

$args = array(
    \'child_of\'           => $cat_id,
    \'title_li\'           => __( \' \' ),
    \'current_category\'   => 0,
    \'pad_counts\'         => 0,
    \'taxonomy\'           => \'category\'
);
wp_list_categories( $args );
现在,我得到了当前类别的子类别列表,但如果父类别有子类别,我仍然需要阻止帖子显示在父类别中,因此我尝试将循环包装在条件语句中(也在category.php):

if ( category_has_children( $cat ) == false) :
    get_template_part( \'loop\' ); 
endif;
而且在functions.php 我添加了以下内容:

function category_has_children( $term_id ) { 
    $children = get_term_children( $term_id, "category" );
    if ( is_array( $children ) ) {
        return $children;
    } else {
        return false;
    }
}

1 个回复
SO网友:tousall

当我发布问题时,我看到了这个链接How to only show posts on last child category它帮助我解决了最后一个难题。

Now it can be done:))

结束

相关推荐

Categories' hierarchy in URL

我目前正在处理的网站中的帖子都有多个层次分类。例如:Source - Books -- Moby Dick -- Sherlock Holmes 永久链接设置为/%category%/%postname%/. 然而,一篇文章的URL并不包括所有的子类别——我得到的只是site.com/source/books/*postname*, 尽管这篇文章在来源上没有分类,但只在书籍+白鲸上。有人能帮我找出如何调整这种行为吗?非常感谢。