WordPress排序问题。如何解决订购1-10-100的问题?

时间:2016-11-28 作者:Yearmaz

我有1到25个类别的名称。但是WordPress排序系统不能正常工作。它的顺序是1,10,11,12,13。。。2,21,22,23,24,25。我不想将0添加到1-9个数字。如何解决此问题?

这是我的代码:

<li class="categoriesx <?php echo print_category_slug( get_the_category( $post->ID) ); ?>" 
    data-category="<?php echo print_category_slug( get_the_category( $post->ID) ); ?>">

2 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

根据我在这方面所做的研究,使用术语元数据是一种更好的全面排序术语的方法。

然而,我想出了这个片段,它确实按名称对术语进行了数字排序:

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;
} 
这是一个屏幕截图,显示了在管理区域中的实际操作。为了进行测试,我创建了一个名为“数字”的新分类法,并以任意顺序创建了术语。当使用上面发布的代码时,术语将按数字顺序排列。sort terms numerically by name

SO网友:cjbj

WordPress将按字母顺序排列您的类别,从而得出您得到的结果。您希望按数字顺序排列。PHP可以为您做到这一点。假设您有一个随机排序的类别数组,如下所示:

$cats = array (\'3\', \'22\', \'17\', ... \'7\');
然后您可以使用PHP sort 强制数字排序顺序时:

sort ($cats, SORT_NUMERIC);
那应该给你

$cats = array (\'1\', \'2\', \'3\', ... \'25\');

相关推荐

WP_QUERY ORDERBY不适用于META_KEY

我想在我的档案馆按“leasenum”订购这篇文章。php。我想过滤特定的“商城”。结果集正确,但顺序错误。只有在删除“meta\\u键”时,orderby才起作用meta\\u值\'。$args = array( \'post_type\' => \'shop\', \'meta_key\' => \'mall\', \'meta_value\' => $getvalue,