post meta中的数字不适用于orderby

时间:2016-05-07 15:52:57

标签: wordpress

嗨-HOY

我正在尝试使用post meta来订购事件列表。元键是_event_date,元值存储为'yymmdd'。我想要的很简单:我希望事件(称为“事件”的自定义帖子)从最接近当前日期的事件开始。但它没有用。

这是我的代码:

$args = array(
    'post_type' => 'events', 
    'posts_per_page' => -1,
    'meta_key' => '_event_date',
    'orderby' => 'meta_value_num', 
    'order' => 'ASC'
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

endwhile; endif;

那么,有什么突出的错误吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这可能会引起您的兴趣,来自WordPress Codex:

订单&订购参数

  

'的 meta_value '

     

请注意,' meta_key =键名'必须也出现在查询中。   另请注意,排序将按字母顺序排列,这对于   字符串(即单词),但数字可能是意外的(例如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& #39;,' UNSIGNED',
  与&$ 39; $ meta_query'相同。使用' meta_type'你也可以用
  因此meta_value_ *。例如,使用DATETIME作为
  ' meta_type'你可以使用' meta_value_datetime'定义订单
  结构

所以你的查询args应该是:

/res/values/strings.xml

希望它有所帮助。