如何为WordPress类别创建自定义排序

时间:2013-08-07 作者:Wayne Hatter Jr.

我遇到了这个问题。我正在尝试按我希望的顺序对类别进行排序。我已经阅读了所有排序选项的WordPress文档。然而,对于如何选择类别并让它们按照我想要的方式流动,我没有任何倾向。

这就是法典所呈现的内容:

orderby (string)按字母顺序或按唯一类别ID对类别进行排序。默认值是按类别ID排序。有效值:
-ID
-name-默认值
-slug
-count
-term\\u group

order (字符串)类别的排序顺序(升序或降序)。默认值为升序。有效值:asc-默认值

然而,正如我所说,这对我没有帮助,因为我需要它们按照我选择的顺序显示。

下面是我目前正在实现的代码。这是我希望它们显示的顺序。

<?php
$args = array(
\'orderby\' => \'ID\',
\'order\' => \'ASC\',
\'include\' => \'5,6,7,8,29,9,10,11,12,13,14,15,16\'
);
$categories = get_categories($args);
foreach($categories as $category) {
echo \'<li><a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf(     __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name . \'</a>\' . \' \' . \'(\' . $category->count . \')\' . \'</li> \';
}
?>

3 个回复
SO网友:luke

如果您已经在使用Advanced Custom Fields (你应该是!)您可以为类别创建一个顺序字段,从中可以手动按数字顺序进行设置。

那么你所要做的就是:

$categories = get_categories( $args );  

usort($categories, function($a, $b) {
   return get_field("category_order", "category_".$a->term_id) - get_field("category_order", "category_".$b->term_id);
});

foreach ($categories as $category){
...
在哪里category_order 是使用ACF创建的字段名。

注意:使用usort的PHP 5.3方式

SO网友:Wayne Hatter Jr.

好的,我找到了这个插件,它正是我想要的。我不想使用插件,但这个插件看起来很轻,而且做得很好。http://wordpress.org/plugins/taxonomy-terms-order/

SO网友:BethW

如果将参数更改为:\'orderby\' => \'include\'

$args = array(
    \'orderby\' => \'include\',
    \'order\' => \'ASC\',
    \'include\' => \'5,6,7,8,29,9,10,11,12,13,14,15,16\'
);
$categories = get_categories($args);
foreach($categories as $category) {
    echo \'<li><a href="\' . get_category_link( $category->term_id ) . \'" title="\' . sprintf(     __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name . \'</a>\' . \' \' . \'(\' . $category->count . \')\' . \'</li> \';
}

结束

相关推荐

Resort get_categories

我有一个get\\u categories数组$args=array( \'orderby\' => \'id\', \'order\' => \'ASC\', \'taxonomy\' => \'wpsc-variation\', \'hierarchical\' => 1, \'hide_empty\' => 0 ); $variationCategories=get_cate