meta_value_num sort glitch

时间:2012-10-05 作者:Elle Billias

我有一个自定义查询,我有一个包含序列号的元键:1.1、1.2、2.1、2.2。。。11.1等

当数字序列达到两位数时,即5.11、5.12、5.21,就会出现问题

这些看起来是这样的

5.1、5.11、5.12、5.2、5.21等,而不是5.1、5.2、5.3。。。5.11、5.12等

我怎样才能使它们正确排序!?

$loop = new WP_Query(array(
    \'factsheet_category\' => $term->slug,
    \'orderby\' => \'meta_value_num\', 
    \'meta_key\' => \'factsheet_id\', 
    \'order\' => \'ASC\'
));

1 个回复
SO网友:Adam

你想要的natural order sorting,

实例

$val = array(5.1, 5.11, 5.12, 5.2, 5.21);
natsort($val);
foreach ($val as $key => $val) {
    echo $val."<br>";
}

Produces:

5.1
5.2
5.11
5.12
5.21
其中,as;

$val = array(5.1, 5.11, 5.12, 5.2, 5.21);
asort($val);
foreach ($val as $key => $val) {
    echo $val."<br>";
}

Produces:

5.1
5.11
5.12
5.2
5.21

溶液

$loop = new WP_Query(array(
    \'factsheet_category\' => $term->slug,
    \'orderby\' => \'meta_value meta_value_num\', //addition of meta_value before meta_value_num
    \'meta_key\' => \'factsheet_id\', 
    \'order\' => \'ASC\'
));

结束

相关推荐