我有这样的查询:
$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),它工作得很好。
任何人都能看出错误吗?我被困在这里。 应根据我迄今为止找到的各种资源进行工作。
答案 0 :(得分:0)
meta_value' - 请注意,'meta_key = keyname'也必须出现在 查询。另请注意,排序将按字母顺序排列 字符串(即单词)很好,但数字可能是意外的(例如 1,3,34,4,56,6等,而不是1,3,4,6,34,56,你可能会 自然期待)。使用'meta_value_num'代替数值。 如果要将元值转换为,也可以指定“meta_type” 特定类型。可能的值为'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等,而不是1,3,4,6,34,56,你可能会 自然期待)。
您应该尝试使用meta_value_num
,因为您的元似乎是一个日期