为什么我不能一次查询一种以上的帖子类型?

时间:2011-01-30 作者:Bundarr

我有一个自定义的帖子类型叫做publications. 我想找回所有pagespublications. (我也在按分类法进行筛选,但这并不是造成问题的原因)

$args= array(
        \'post_type\'=>array(\'publications\', \'page\')
        );
query_posts($args);
以上仅返回页面,不返回出版物。如果我从数组中删除“page”并离开

\'post_type\'=>array(\'publications\')
然后返回出版物。

似乎我一次不能查询多个帖子类型,这与codex解释的相反here.

我试过了\'post_type\' = \'any\' 结果相同;仅返回页面。使用WP_Query 也产生了同样的结果。

我是否做错了什么,或者这是WP 3.1 rc3中的错误?

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

你好@Bundarr:

将以下基本示例作为一个独立文件进行测试,它看起来像是按照预期工作,而不是按照您的报告工作:

<?php

include \'../wp-load.php\';
header(\'Content-type: text/plain\');
$q = new WP_Query(array(
  \'post_type\'=>array(\'publications\', \'page\')
  \'posts_per_page\' => -1,
));
echo "SQL: {$q->request}\\n";
foreach($q->posts as $post) {
  echo "{$post->post_name} - {$post->post_type}\\n";
}
所以,我只能假设您有一些插件或主题代码以某种方式被阻塞?

或者可能很简单\'posts_per_page\' => -1 参数,从而只显示有限的数字,并使其看起来好像不起作用?具有\'posts_per_page\' 查询如下所示(-1表示“无限制”):

$q = new WP_Query(array(
  \'post_type\'=>array(\'publications\', \'page\')
  \'posts_per_page\' => -1,
));

结束

相关推荐