如何在帖子(WordPress)上显示最深类别的所有子类别?

时间:2015-05-24 19:47:05

标签: wordpress

我想显示(侧边栏)帖子所属的第二深级别类别的所有子类别(链接)。我尝试过各种代码(比如下面的代码片段肯定是有缺陷的(它会在显示列表中生成子类别的副本)。我认为最简单的方法可能是跟踪面包屑(我在同一页面上有一个面包屑小部件。所以基本上只是显示最深层次类别的所有子类别。(此外,有时会检查各种类别(在多个类别中,例如南苏丹的帖子可能在下面的应变中,但也检查了人权类别。我不会'我真正关心我展示哪种类别的应变,只要它显示其中一种。)

例如,

关于南苏丹新闻的帖子,其中包括以下内容:世界>非洲>东非>南苏丹,它将展示东非类别的所有潜艇

在关于温哥华岛(面包屑世界>北美>加拿大> BC>温哥华岛)的帖子中,它会显示BC的所有子类别。

有没有办法做到这一点?

我一直在使用的(有缺陷的)代码(不确定是否有更好的起点)。

<?php
$post_categories = wp_get_post_categories( $post->ID );
foreach($post_categories as $c){
    $cat = get_category( $c );

    $childCats = get_categories( array('child_of' => $c) );
    if(is_array($childCats)):
        foreach($childCats as $child){ ?>
            <h2><?php echo $child->name; ?></h2>
            <?php
            query_posts('cat='.$child->term_id);
            while(have_posts()):
                the_post();
                $do_not_duplicate = $post->ID;
                //post code stuff here;
            endwhile;
            wp_reset_query();
        }
    endif;
}
?>

1 个答案:

答案 0 :(得分:0)

此行将为您提供给定类别的子类别:

$childCats = get_categories( array('child_of' => $c) );

如果我理解正确,您需要父类别。

查看函数get_category_parents(),这可能正是您所需要的:

  

按层次顺序返回类别父类的列表,包括类别。