我猜是因为你order_by 应该是什么时候orderby - 那个order_by 这不仅仅是一个问题,对吧?
而且,如果元值是日期,那么还应该设置meta_type 参数到DATE 使分拣工作如预期的那样进行。
因此,请尝试:
$the_query = new WP_Query( array(
\'post_type\' => \'event\',
\'posts_per_page\' => 2,
\'orderby\' => \'meta_value\', // it\'s orderby; not order_by
\'meta_key\' => \'start_date\',
\'meta_type\' => \'DATE\', // and set meta_type to DATE
) );
更新
如果上述操作仍然无效,请尝试使用
meta_query 而不是那些
meta_key 和
meta_type, 并设置
orderby 到
start_date - 中的键
meta_query 对于元数据
start_date:
$the_query = new WP_Query( array(
\'post_type\' => \'event\',
\'posts_per_page\' => 2,
\'meta_query\' => array(
\'start_date\' => array(
\'key\' => \'start_date\',
\'type\' => \'DATE\',
),
),
\'orderby\' => \'start_date\',
) );
但是,如果有插件或自定义代码覆盖
orderby, e、 g.通过
pre_get_posts, 那么我怀疑上述方法是否有效。
但你可以试试,谁知道它神奇地工作。。。此外,请尝试清除站点缓存,以防万一。