我遇到了这个问题。 我正在尝试对我的类别进行排序,以按照我希望的顺序显示它们。 我已阅读有关所有排序选项的 WordPress 文档。 但是,没有关于如何选择类别并使它们按照我想要的方式流动的倾向。
这是食品法典的内容:
orderby (字符串)按字母顺序或唯一类别 ID 对类别进行排序。 默认按类别 ID 排序。 有效值:
– ID
– 名称 – 默认
– 鼻涕虫
– 数数
– term_group命令 (字符串)类别的排序顺序(升序或降序)。 默认是升序。 有效值:
– 升序 – 默认
– 描述
但是,正如我所说,这对我没有帮助,因为我需要它们按照我选择的顺序显示。
这是我目前正在实施的代码。 这是我希望它们显示的顺序。
<?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> ';
}
?>
如果您已经在使用高级自定义字段(您应该这样做!),您可以为您的类别创建一个排序字段,您可以从中按数字顺序手动设置它们。
那么你所要做的就是:
$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 创建的字段名称。
注意:使用 PHP 5.3 的 usort 方式。
好的,我发现这个插件完全符合我的要求。 我不想使用插件,但这个插件看起来很轻,而且它完美地完成了工作。 http://wordpress.org/plugins/taxonomy-terms-order/
