我想显示(侧边栏)帖子所属的第二深级别类别的所有子类别(链接)。我尝试过各种代码(比如下面的代码片段肯定是有缺陷的(它会在显示列表中生成子类别的副本)。我认为最简单的方法可能是跟踪面包屑(我在同一页面上有一个面包屑小部件。所以基本上只是显示最深层次类别的所有子类别。(此外,有时会检查各种类别(在多个类别中,例如南苏丹的帖子可能在下面的应变中,但也检查了人权类别。我不会'我真正关心我展示哪种类别的应变,只要它显示其中一种。)
例如,
关于南苏丹新闻的帖子,其中包括以下内容:世界>非洲>东非>南苏丹,它将展示东非类别的所有潜艇
在关于温哥华岛(面包屑世界>北美>加拿大> 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;
}
?>
答案 0 :(得分:0)
此行将为您提供给定类别的子类别:
$childCats = get_categories( array('child_of' => $c) );
如果我理解正确,您需要父类别。
查看函数get_category_parents()
,这可能正是您所需要的:
按层次顺序返回类别父类的列表,包括类别。