通过特定的自定义字段订购 WP 查询,不起作用
Posted
技术标签:
【中文标题】通过特定的自定义字段订购 WP 查询,不起作用【英文标题】:order a WP query by specific custom field, not working 【发布时间】:2021-10-25 15:19:15 【问题描述】:我想按下载次数,DESC排序一些帖子,似乎文章是随机显示的:
$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`
感谢任何帮助,谢谢
【问题讨论】:
【参考方案1】:Meta_Value 字段将值存储为字符串。这就是它按字母顺序返回 orderby 数据的原因。 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'
));
此外,在您的问题文本中,逗号是错误的。它应该是',而不是'
【讨论】:
以上是关于通过特定的自定义字段订购 WP 查询,不起作用的主要内容,如果未能解决你的问题,请参考以下文章