根据我在这方面所做的研究,使用术语元数据是一种更好的全面排序术语的方法。
然而,我想出了这个片段,它确实按名称对术语进行了数字排序:
add_filter( \'terms_clauses\', \'wpse247680_terms_clauses\', 10, 3 );
function wpse247680_terms_clauses( $pieces, $taxonomies, $args ) {
// Bail if we are not looking at the right taxonomy, \'category\' in this case.
if ( ! in_array( \'category\', $taxonomies ) ) {
return $pieces;
}
// Casts the term name to an integer
// Idea derrived from similar idea using posts here: https://www.fldtrace.com/custom-post-types-numeric-title-order
$pieces[\'orderby\'] = \'ORDER BY (t.name+0) \';
return $pieces;
}
这是一个屏幕截图,显示了在管理区域中的实际操作。为了进行测试,我创建了一个名为“数字”的新分类法,并以任意顺序创建了术语。当使用上面发布的代码时,术语将按数字顺序排列。