通过特定的自定义字段订购 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 查询,不起作用的主要内容,如果未能解决你的问题,请参考以下文章

通过存档页面上的自定义字段查询自定义帖子类型

旧 ASP.Net 应用程序中的自定义错误页面不起作用

在 Visual Composer 自定义网格模板上显示自定义字段图像

Wp查询日期之间的帖子,但任何年份

Wordpress:带有过滤器的存档页面不起作用(ACF)

通过自定义listView同时选择和搜索不起作用