如何在WordPress中查询多个类别?

时间:2014-10-06 作者:Jono

我试图在wordpress中查询多个类别,但运气不好,我没有发现我的代码有任何问题。

我的代码如下:

query_posts(\'posts_per_page=1&cat=5,1\');

  while ($wp_query->have_posts()) : $wp_query->the_post(); 

  get_template_part(\'loop\', \'single-home\');

endwhile;

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

像这样使用

query_posts( array( \'category__in\' => array(5,1), \'posts_per_page\' => 1, \'orderby\' => \'title\', \'order\' => \'ASC\' ) );

$my_query = new WP_query(array(\'category__and\' => array(5,1))); 
while ($my_query->have_posts()) : $my_query->the_post(); 

SO网友:Pieter Goosen

首先,不要使用query_posts

Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。

你应该使用WP_Query 创建自定义查询的步骤

其次,你的问题是posts_per_page 参数设置为1. 这意味着将检索一个来自cat 1或cat 5的帖子,这取决于两个cat中哪个帖子是最新的。你必须增加1 要检索更多帖子,请设置1-1 检索这两个类别中的所有帖子。

您还可以删除posts_per_page 参数并将其替换为nopaging=true 检索所有帖子。

结束

相关推荐

来自jQuery AJAX的WP API删除请求

我正在使用rest json API插件http://wp-api.org/ 创建一个小应用程序。我试图用jquery ajax删除一个自定义的帖子条目,但缺少一些东西,下面是我的代码:... //make the request var dataArray = {}; var urlRequest = WP_API_Settings.root+\"/posts/\"+postID; var typeRequest = \'D