1

给定以下类别层次结构:

  • 行星
    • 大陆
      • 国家
        • 状态

当我使用以下代码从所有包含它们的帖子中检索它们时:

$post_categories = wp_get_post_categories( $post_id );
$cats = array();

foreach($post_categories as $c){
    $cat = get_category( $c );
    $cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );
}

并回显结果:

echo $cats[0]['name'];
echo $cats[1]['name'];
echo $cats[2]['name'];
echo $cats[3]['name'];

我让它们按字母顺序排列,如下所示:

Continent, Country, Planet, State

但我真正需要的是让它们按层次结构排序,如下所示:

Planet, Continent, Country, State

有任何想法吗?提前致谢!

4

2 回答 2

3

找到了答案!实际上这很明显,但如果这对处于相同情况的人有所帮助,那就是。

您需要做的就是添加以下数组作为第二个参数,如下所示:

$post_categories = wp_get_post_categories( $post->ID, **array('orderby' => 'term_order', 'order' => 'ASC')**);

这样就行了!

于 2013-02-13T19:49:02.937 回答
0

$post_categories = wp_get_post_categories($post->ID, array('orderby' => 'term_order', 'order' => 'ASC') );

这仅返回按 id ASC 排序的类别,因此请注意,因为当您将来在三个类别元素上插入另一个类别元素时,例如在顶部,此函数将停止工作,因为您的根元素将是最后一个。

于 2015-03-19T16:02:06.660 回答