使用GET_CATEGORIES自定义类别顺序

时间:2016-03-31 作者:EliChan

我有一个带有metro\\u creativex主题的站点,该站点带有按字母顺序显示类别的侧菜单。现在,我需要按照自己的顺序(不是字母倒序或id)对它们进行排序,因为在我的页面上,它调用了一个函数来显示侧菜单,所以在这一行的函数上,我已经修改过,只显示我需要的类别:

$metro_creativex_terms = get_categories(\'hide_empty=0&exclude=1,22,23,24,49\');
现在,我不想告诉它不要显示空类别,也不想通过id隐藏其他类别,而是想告诉他按以下确切顺序显示类别:47、44、43、45、42、41、40、25、46。我也不需要任何其他类别,所以我正在寻找一种真正严格的顺序
变量的使用方式如下:

<?php
          $metro_creativex_terms = get_categories(\'hide_empty=0&exclude=1,22,23,24,49\');

          if ($metro_creativex_terms) {
            foreach( $metro_creativex_terms as $metro_creativex_term ) {
                $metro_creativex_post_nr = $metro_creativex_term->count;
                if ( $metro_creativex_post_nr == "1" )
                    $metro_creativex_post_nr_display = "song";
                else {
                    $metro_creativex_post_nr_display = \'songs\';
                }
              echo \'
                <a href="\' . get_category_link( $metro_creativex_term->term_id ) . \'" class="color-code" title="\' . $metro_creativex_term->name.\'">
                    \' .\'<span>\'. $metro_creativex_term->name.\'</span>\'.\'
                    <div class="read bg-code">
                        <p>\'.$metro_creativex_post_nr.\'</p><span>\'.$metro_creativex_post_nr_display.\'</span>
                    </div>
                </a>\';
                }
          }
        ?>
甚至可以按我的自定义顺序对类别进行排序吗?

1 个回复
最合适的回答,由SO网友:Jevuska 整理而成

在get\\u categories上按类别id的确切顺序EliChan,使用get_categories, 如果你使用exclude. 使用效果更好include 作为ids order和的参数orderby 有价值的include.

$args = array(
    \'hide_empty\' => 0,
    \'orderby\'    => \'include\',
    \'include\'    => array( 47, 44, 43, 45, 42, 41, 40, 25, 46 ) //exact order id
);
$metro_creativex_terms = get_categories($args);
你可以看到get_terms 对于可接受的价值观$args.