我有一个php代码,如下所示,我想在其中排序WP_Post Object
按对象字段排列post_date
.
if ( $search ) {
$area_query = new \\WP_Query( [
\'s\' => $search,
\'post_type\' => \'abc-xyz\',
\'post_status\' => \'publish\'
] );
}
这就是我尝试的目的
WP_Post object
数组,但它似乎不起作用。
if ( $search ) {
$area_query = new \\WP_Query( [
\'s\' => $search,
\'post_type\' => \'abc-xyz\',
\'post_status\' => \'publish\',
\'orderby\' => \'date\',
\'order\' => \'ASC\',
] );
}
Problem Statement:
我想知道我应该在上面的php代码中做些什么更改,以便对其进行排序
WP_Post
对象数组按日期排序。
SO网友:Tom J Nowell
我想知道我应该在上面的php代码中做些什么更改,以便它按日期对WP\\U Post对象数组顺序进行排序。
WordPress/PHP不会对对象进行排序,这不是它的工作方式。此外sort
参数不采用对象字段的名称。两者没有连接。post的顺序由SQL查询返回的post表中的行的结果决定。
相反sort
是用于构造SQL查询的参数。If we look at the documentation we can see the valid values, 因此,您已经在使用正确的订单参数:
$area_query = new \\WP_Query( [
\'s\' => $search,
\'post_type\' => \'abc-xyz\',
\'post_status\' => \'publish\',
\'orderby\' => \'date\',
\'order\' => \'ASC\',
] );
上述代码要求数据库按日期升序排列帖子(例如1AD、2AD、500AD、1000AD、2000AD等)。可能是你想要相反的结果。
请注意,如果您将数据存储在post meta中,这将不起作用date
这是这篇文章发表的日期。