Php WordPress wp_按元值查询顺序数字顺序不正确

Php WordPress wp_按元值查询顺序数字顺序不正确,php,wordpress,Php,Wordpress,我正在开发一个简单的web应用程序,它使用WordPress来存储和显示游戏的高分。分数在页面上从高到低显示。一切似乎都很好,直到其中一个分数超过999,在这种情况下,它被放置在错误的顺序 在我的应用程序中,分数保存为meta\u值中的字符串。我正在查询帖子,并根据这个值对它们进行排序 以下是我要传递给wp\u query的参数: $args2 = array( 'post_type' => 'scoreboard', 'orderby' => 'meta_value

我正在开发一个简单的web应用程序,它使用WordPress来存储和显示游戏的高分。分数在页面上从高到低显示。一切似乎都很好,直到其中一个分数超过999,在这种情况下,它被放置在错误的顺序

在我的应用程序中,分数保存为
meta\u值中的字符串。我正在查询帖子,并根据这个值对它们进行排序

以下是我要传递给
wp\u query
的参数:

$args2 = array(
    'post_type' => 'scoreboard',
    'orderby' => 'meta_value',
    'meta_key' => 'score',
    'order' => 'DESC',
    'posts_per_page' => '-1',
);
分数以同样的方式返回。请注意,
1000
放在
123
之后:

777, 700, 601, 600, 567, 400, 123, 1000, 1

有人能解释一下为什么会发生这种情况吗?

您正在按字符串排序,字段1000的字符串表示形式低于12。与排序单词时相同,雅培将高于AA

试一试


您正在按字符串进行排序,字段1000的字符串表示形式小于12。与排序单词时相同,雅培将高于AA

试一试


试试大卫的答案。正确:)试试大卫的答案。没错:)啊哈!我应该知道这个。非常感谢!对我来说,它将分数按以下顺序排序:90、90、9、9、87、84、8等等。。。。我可能做错了什么?啊哈!我应该知道这个。非常感谢!对我来说,它将分数按以下顺序排序:90、90、9、9、87、84、8等等。。。。我可能做错了什么?
$args2 = array(
    'post_type' => 'scoreboard',
    'orderby' => 'meta_value_num',
    'meta_key' => 'score',
    'order' => 'DESC',
    'posts_per_page' => '-1',
);