WP_QUERY-按元值对结果进行排序

时间:2011-10-04 作者:Adam Moss

我已经查过了,到目前为止还没有找到有效的答案。我有一个带有以下参数的WP\\U查询:

$args = array(
    \'post_status\' => \'publish\',
    \'post_type\' => \'listing\',
    \'meta_key\' => \'client_feedback_score\',
    \'orderby\' => \'client_feedback_score\',
    \'order\' => \'DESC\'
);

$query = new WP_Query($args);
我想按自定义帖子字段对结果排序client_feedback_score, 从最低到最高。但这似乎不起作用。。。有人能给我指出正确的方向吗?

EDIT (SOLVED):

多亏了Milo的回答,下面是按数值元排序的工作代码:

$args = array(
    \'post_status\' => \'publish\',
    \'post_type\' => \'listing\',
    \'meta_key\' => \'client_feedback_score\',
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'DESC\'
);

2 个回复
最合适的回答,由SO网友:Milo 整理而成

orderby 应该是meta_value_num, 或meta_value, 不是密钥的名称。看见WP_Query orderby parameters.

SO网友:ewroman

如果元值不是数字,例如,如果它是日期值;然后可以添加参数meta_type => DATE.可能的值为;\'NUMERIC\', \'BINARY\', \'CHAR\', \'DATE\', \'DATETIME\', \'DECIMAL\', \'SIGNED\', \'TIME\', \'UNSIGNED\'.

元类型的查询如下:

$args = array(
\'post_status\' => \'publish\',
\'post_type\' => \'listing\',
\'meta_key\' => \'client_feedback_score\',
\'orderby\' => \'meta_value_num\',
\'meta_type\' => \'DATE\',
\'order\' => \'DESC\'
);

结束

相关推荐

Orderby字段-可用选项列表?

我想按照页面属性的“顺序”字段对项目进行排序(参见pic)。我遇到过各种各样的“定制标签”解决方案,但没有一个列出了orderby可以使用的所有可用字段。我想使用编辑器中显示的“顺序”字段。我尝试用“order”替换模板中的orderby字段,但没有看到任何结果。我当前正在使用:post_type=projects&order=ASC&orderby=order&offset=1&posts_per_page=100