我目前正在使用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 :)
最合适的回答,由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()
呼叫