仅针对特定帖子类型修改了Orderby

时间:2015-12-28 作者:Aniket Bhawkar

这是我的WP_Query 其中,我想从多个自定义帖子类型中提取数据,并按修改日期对其排序:

$args = array(
  \'post_type\'      => array( \'staff-updates\', \'employees\', \'coreteam\', \'developing-updates\', \'vacancies\', \'recognition\', \'page\' ),
  \'orderby\'        => \'modified\',
  \'posts_per_page\' => \'10\',
  \'order\'          => \'DESC\',
);
$the_query = new WP_Query( $args );
在这方面,我有一个例外,即仅获取为自定义帖子类型发布的帖子employees 并且未在同一查询中修改。

1 个回复
最合适的回答,由SO网友:WPTC-Troop 整理而成

恐怕你得跟Direct MYSQL 或者你可以跑两个WP_Query() 然后将其组合、排序或排序WP_Query() 然后将它们合并。

下面是一个示例

$args = array(
  \'post_type\'      => array( \'staff-updates\', \'coreteam\',
                           \'developing-updates\', \'vacancies\', \'recognition\', \'page\' ),
  \'orderby\'        => \'modified\',
  \'posts_per_page\' => \'10\',
  \'order\'          => \'DESC\',
);
$the_query_modified = new WP_Query( $args );

$args = array(
  \'post_type\'      => \'employees\',
  \'orderby\'        => \'date\', //default to post_date
  \'posts_per_page\' => \'10\',
  \'order\'          => \'DESC\',
);
$the_query_published = new WP_Query( $args );

$combined = new WP_Query();
//combining two to one
$combined->posts = array_merge( $the_query_modified->posts, $the_query_published->posts );
现在$combined->posts 两者都有。那你想怎么做就怎么做。$combined 可能会遗漏一些细节,因为它不是直接构造的。在这种情况下,您只需使用两个查询($the_query_modified,$the_query_published ) 直接或转到SQL

相关推荐

Get_Terms()Order by Term_Meta

我正在做一个get_terms() 我试图按自定义术语元排序的查询。自定义术语元键是\'order\' 它是一个数值(介于1和10之间)。我尝试了以下方法,但顺序似乎没有遵循元值-任何指针都是值得赞赏的。$type_terms = get_terms( \'type\', array( \'hide_empty\' => false, array( \'key\' => \'order\', ), \'or