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

答えが見つかりました!実際には非常に明白ですが、これが同じ状況にある誰かに役立つ場合は、ここにあります.

次のように、次の配列を 2 番目の引数として追加するだけです。

$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 で並べ替えられたカテゴリのみを返すため、ルート要素が最後になるため、たとえば上部の 3 つに将来別のカテゴリ要素を挿入すると、この関数は機能しなくなるため注意してください。

于 2015-03-19T16:02:06.660 に答える