我有一个层次分类树,这意味着最多有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;
}
}