我试图弄清楚如何按特定顺序显示类别。假设我的类别ID的顺序如下:1,3,4,2,5
我想按该顺序显示类别。以下是迄今为止我拥有的代码,但它不起作用:
$args = array(
\'type\' => \'post\',
\'child_of\' => 0,
\'parent\' => \'\',
\'orderby\' => \'front_order_id\',
\'order\' => \'ASC\',
\'hide_empty\' => 0,
\'hierarchical\' => 1,
\'exclude\' => 1,
\'include\' => \'1,3,4,2,5\',
\'number\' => \'\',
\'taxonomy\' => \'category\',
\'pad_counts\' => false
);
$categories = get_categories($args);
SO网友:Pieter Goosen
EDIT
我真的不知道Wordpress中有什么解决方案可以按照您需要的方式进行排序。我认为最好的方法是使用php排序,根据需要对返回的数组进行排序
以下是如何:像往常一样获取类别信息数组
$categories = get_categories($args);
$categories
将保存从数据库返回的五个类别的数组
现在需要创建一个具有所需排序顺序的数组
$keys = [1,3,4,2,5];
您现在要合并
$keys
和
$categories
具有
array_combine
. 我们将使用
Skeys
新组合阵列的密钥
$categories_rearranged = array_combine( $keys, $categories );
在此阶段,数组不会自然排序,因此使用
ksort
, 对数组进行排序,使其自然排序
ksort($categories_rearranged);
$categories_rearranged
现在将是您将使用的数组,并将传递给foreach
环foreach ( $categories_rearranged as $category ) {
echo $category->name;
}
ORIGINAL ANSWER
抄本会帮助你的。看看
get_categories()
尤其是以下参数
orderby
(字符串)按字母顺序或按唯一类别ID对类别进行排序。默认值为按名称排序。有效值:
id
名称-默认弹头
计数
术语组
您可以看到您正在向
orderby
这个include
和exclude
参数也不能一起使用