我正在开发一个简单的Web应用程序,它运行WordPress来存储和显示游戏的高分。分数在页面上显示为从最高到最低。一切似乎都很好,直到其中一个得分高于999,在这种情况下,它被放错了。
在我的应用程序中,分数在meta_value
内保存为字符串。我正在查询帖子并根据此值对它们进行排序。
以下是我传递给wp_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
有人可以解释为什么会发生这种情况吗?
答案 0 :(得分:2)
您按字符串术语排序字段1000的字符串表示低于12。与排序单词相同时,ABBOTT将高于AA。
尝试
$args2 = array(
'post_type' => 'scoreboard',
'orderby' => 'meta_value_num',
'meta_key' => 'score',
'order' => 'DESC',
'posts_per_page' => '-1',
);