Wordpress post meta中的编号不适用于orderby

Wordpress post meta中的编号不适用于orderby,wordpress,Wordpress,嗨,嗨 我正在尝试使用PostMeta来排列事件列表。元键是_event_date,元值存储为'yymmdd'。我想要的很简单:我想要事件,这是一种称为“事件”的自定义帖子,从最接近当前日期的事件开始。但它不起作用 这是我的密码: $args = array( 'post_type' => 'events', 'posts_per_page' => -1, 'meta_key' => '_event_date', 'orderby' =>

嗨,嗨

我正在尝试使用PostMeta来排列事件列表。元键是_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;
那么,这有什么问题吗


谢谢

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

订单和订单依据参数

元值”

请注意,“meta_key=keyname”也必须出现在查询中。 还请注意,排序将按字母顺序进行,这对于 字符串(即单词),但数字(例如1、3、, 34,4,56,6等等,而不是你可能的1,3,4,6,34,56 自然期望)。使用“meta_value_num”代替数值。 如果要强制转换元值,还可以指定“meta_type” 作为一种特殊类型。可能的值有“数字”、“二进制”和
'字符','日期','日期时间','十进制','有符号','时间','无符号',
与“$meta_查询”中的相同。使用“元类型”时,您也可以使用
相应的元值。例如,当使用DATETIME作为
“meta\u type”您可以使用“meta\u value\u datetime”定义订单
结构

因此,您的查询参数应该是:

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

希望能有帮助。

嘿,伊曼努埃尔。感谢您参考法典,然后编写数组。这很有帮助。@producto,如果您的问题得到解决,请标记为有效答案,谢谢