我猜是因为你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
, 那么我怀疑上述方法是否有效。
但你可以试试,谁知道它神奇地工作。。。此外,请尝试清除站点缓存,以防万一。