Wordpress按自定义字段排序自定义帖子类型

时间:2015-11-26 22:06:28

标签: php wordpress

我有这样的查询:

$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),它工作得很好。

任何人都能看出错误吗?我被困在这里。 根据我迄今为止找到的各种资源进行工作。

1 个答案:

答案 0 :(得分:0)

来自Wordpress Codex

  

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