我有一个这样的查询:
$args = array(
'post_type' => 'proof_gallery',
'post_status' => 'publish',
'posts_per_page' => 12,
'orderby' => 'meta_value',
'meta_key' => '_pixproof_event_date',
'order' => 'DESC',
'paged' => $paged
);
$wp_query = new WP_Query($args);
帖子应该按事件日期显示,但它们会以某种随机顺序显示。只要我将orderby更改为"ID"(并删除meta_key),它就可以正常工作。
有人能看到出了什么问题吗?我被困在这里了。它应该根据我迄今为止发现的各种资源工作。
来自Wordpress Codex
"meta_value"-请注意,中还必须存在"meta_key=keyname"查询。还要注意,排序将按字母顺序排列,即字符串(即单词)很好,但数字(例如。1、3、34、4、56、6等,而不是像你可能的那样自然预期)。对于数值,请使用"meta_value_num"。如果要将meta值强制转换为特定类型。可能的值为"NUMERIC"、"BINARY"、"CHAR"、,'DATE','DATETIME','DECIMAL','SIGNED','TIME','UNSIGNED',与在"$meta_query"中。
"meta_value_num"-按数字元值排序(自版本2.8)。还要注意,还必须存在"meta_key=keyname"在查询中。该值允许如上所述进行数字排序在"meta_value"中。
但对于数字(例如。1、3、34、4、56、6等,而不是像你可能的那样自然预期)。
您应该尝试使用meta_value_num
,因为您的元似乎是一个日期