根据WordPress codex, get_categories() 方法为其 orderby 属性接受以下参数:
**orderby** (string) Sort categories alphabetically or by unique category ID. The default is sort by Category ID. Valid values:
id
name - default
slug
count
term_group
Run Code Online (Sandbox Code Playgroud)
但是,查看“wp_term_relationships”表,有一个看似未使用的字段,称为“term_order”,对于我创建的每个类别,该字段都设置为 0。
是否可以使用 term_order 字段作为类别的索引排序顺序?
我已为我的类别将增量值放入此字段中,但我正在尝试使用以下代码将订单传递给函数,但无济于事:
$cat_args=array(
'hierarchical' => 0,
'orderby' => 'term_order',
);
$categories = get_categories($cat_args);
Run Code Online (Sandbox Code Playgroud)
小智 1
许多年后,
您可以在functions.php中添加以下代码:
function wpcf_filter_terms_order( $orderby, $query_vars, $taxonomies ) {
return $query_vars['orderby'] == 'term_order' ? 'term_order' : $orderby;
}
add_filter( 'get_terms_orderby', 'wpcf_filter_terms_order', 10, 3 );
Run Code Online (Sandbox Code Playgroud)
此代码强制 WP在术语查询中使用orderby => term_order参数。
| 归档时间: |
|
| 查看次数: |
8059 次 |
| 最近记录: |