自定义字段日期顺序

时间:2015-08-03 21:02:10

标签: wordpress

我有一个名为dead_date的自定义字段,其中我将日期设置为dd-mm-yyyy。 现在我打电话给我,所以我可以按照这样的日期订购:

  • 01-03-2015
  • 27-02-2015
  • 14-12-2014

但我得到的是:

  • 2015年1月3日
  • 14-12-2014
  • 27-02-2015

在下面找到我的代码

$args = array(
        'posts_per_page'   => 500,
        'offset'           => 0,
        'category'         => 1,
        'meta_key'         => 'dead_date',
        'orderby'          => 'meta_value',
        'order'            => 'DESC',
        'post_type'        => 'post',
        'post_status'      => 'publish',
        'suppress_filters' => true 
);

$posts_array = get_posts( $args );

2 个答案:

答案 0 :(得分:0)

尝试添加meta_type和值'DATE'

$args = array(
        'posts_per_page'   => -1,       
        'category'         => 1,
        'meta_key'         => 'dead_date',
        'orderby'          => 'meta_value',
        'order'            => 'DESC',
        'post_type'        => 'post',
        'post_status'      => 'publish',
        'suppress_filters' => true,
        'meta_type'        => 'DATE'
);
$posts_array = get_posts( $args );

get_posts使用WP_Query,因此您可以使用相同的参数,并根据WP_Query documentation

  

'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'。

如果不起作用,您可能必须使用WP_Query而不是get_posts

答案 1 :(得分:0)

$args = array(
        'posts_per_page'   => -1,       
        'category'         => 1,
        'meta_key'         => 'dead_date',
        'orderby'          => 'meta_value',
        'order'            => 'DESC',
        'post_type'        => 'post',
        'post_status'      => 'publish',
        'suppress_filters' => true 
);
$posts_array = get_posts( $args );

这可能会对你有所帮助。干杯!!