Wordpress按自定义字段对自定义文章类型进行排序


Wordpress sort custom post type by custom field

我有一个这样的查询:

$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,因为您的元似乎是一个日期