WP_LIST_CATEGORES:是否按术语顺序排序?

时间:2016-10-18 作者:digifrog

我目前正在使用WordPress\'wp_list_categories 函数以从指定的分类中检索术语。我喜欢这个函数,因为它能够生成(分层的)HTML列表,这些列表配有适当的类名等。

我已使用Simple Custom Post Order 插件,当我以常规方式列出所有术语(即使用get\\u术语)时,它工作得很好。

然而,每当我尝试使用wp_list_categories, 在使用“term\\u order”(或“menu\\u order”)时,它不接受“orderby”参数。

有人能给我指一下正确的方向吗?

我在下面提供了我的代码:

$categories = wp_list_categories([
     \'taxonomy\' => \'news_category\',
     \'title_li\' => \'\',
     \'orderby\' => \'menu_order\',
     \'order\' => \'ASC\',
     \'echo\' => 0,
     \'current_category\' => $current_term_id,
     \'depth\' => 0
]);

Edit: I used menu_order, while I should have been using term_order. Still, I hope this serves somebody, some day :)

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

这个wp_list_categories() 函数调用get_categories() 函数,这是get_terms() 函数,该函数创建WP_Term_Query 班它看起来不支持按术语顺序排序。

如果插件使用term_order 中的列wp_terms 表,然后您可以尝试通过get_terms_orderby 过滤器:

add_filter( \'get_terms_orderby\', function( $orderby, $qv, $taxonomy )
{
    // Only target the category taxonomy
    if( \'category\' !== $taxonomy )
        return $orderby;

    // Support orderby term_order
    if( isset( $qv[\'orderby\'] ) && \'term_order\' === $qv[\'orderby\'] )
        $orderby = \'t.term_order\';

    return $orderby;
}, 10, 3 );
我们只支持category 分类学

另一种方法是在wp_list_categories() 呼叫

相关推荐

Get_Terms()在自定义帖子类型上提供了错误的自定义分类Childs计数

我有一个自定义的分类法,我们称之为;指示;。我们将其与自定义帖子类型“配合使用”;产品;。我们对术语Parent->;小孩父级从未与产品建立连接。我使用它来创建一个自定义的select字段,并且需要父字段作为optgroup标题。是否使用此结构父级子级1(根据后端的2篇帖子)子级2(根据后端的1篇帖子)但是如果我查询子主题并检查计数,它总是显示为NULL。在Wordpress仪表板中,它使用2和1正确定位。为什么不在前端呢。 $args = array( \'hide_e