按特定自定义字段订购 WP 查询,不起作用

order a WP query by specific custom field, not working

我想按下载数降序排列一些文章,好像文章是随机显示的:

$posts = get_posts(array(
‘post_type’ => ‘post’,
‘posts_per_page’ => 12,
‘meta_key’ => ‘post_views_count’,
‘orderby’ => ‘meta_value’,
‘order’ => ‘DESC’
));

但奇怪的是,来自 Mysql 的查询工作正常:

`SELECT * FROM wp_postmeta WHERE meta_key = ‘post_views_count’ ORDER BY meta_value DESC`

感谢任何帮助,谢谢

Meta_Value 字段将值存储为字符串。这就是为什么它 returns 按字母顺序排列数据。 f.e。 9,8,7,70,6,5,55,4,3,2,1 要获得数字顺序,您应该使用 meta_value_num.

$posts = get_posts(array(
'post_type' => 'post',
'posts_per_page' => 12,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));

而且,在你的问题文本中,逗号是错误的。应该是',而不是'