Wordpress get_posts不返回多个post类型

Wordpress get_posts不返回多个post类型,wordpress,Wordpress,我正在使用获取帖子($query)在我的WordPress插件中列出帖子 如果我这样使用它: $query['post_type'] = array('post', 'attachment'); $query['post_type'] = 'attachment'; 然后它不会返回“附件”类型,只返回帖子。仅当我单独查询它们时,才会返回它们,如下所示: $query['post_type'] = array('post', 'attachment'); $query['post_type'

我正在使用获取帖子($query)在我的WordPress插件中列出帖子

如果我这样使用它:

$query['post_type'] = array('post', 'attachment');
$query['post_type'] = 'attachment';
然后它不会返回“附件”类型,只返回帖子。仅当我单独查询它们时,才会返回它们,如下所示:

$query['post_type'] = array('post', 'attachment');
$query['post_type'] = 'attachment';
我正在使用WordPress 4.9.6

我错过了什么

谢谢。

你能试试吗

$args = array(
  'post_type'   => array('post', 'attachment')
);

$multi_posts = get_posts( $args );

确保检查自定义帖子类型的名称

问题是附件的post_status=='inherit'而不是'publish',因此我会尝试添加

$query['post_status'] = [ 'publish', 'inherit' ];
到$args

请注意,这可能会得到更多的结果,然后还将返回post_type=='post',post_status=='inherit'。您可能应该执行两个单独的查询。这只是解释为什么组合查询不能按预期工作

原因

$query['post_type'] = 'attachment';
works是WordPress在get_posts()中有以下代码


谢谢你把这件事弄清楚。它使用:$query['post_status']=['publish','inherit'];