是否将WP_QUERY和QUERY_POST用于循环?

时间:2013-01-02 作者:Mihad Aiko

我使用下面的代码从某个分类术语调用post。我的意图是将其混合到正常循环中。

我并不是要创建两个不同的循环,而是一个循环,其中显示分类术语中的帖子以及循环中的原始帖子。

问题是下面的代码使原来的循环消失了,我应该怎么做。我不擅长写代码,我正在学习。谁能帮帮我吗。

<?php // Create empty array to store post ids in
     $excludes = array();

                     $args=array(
                     \'post_type\' => array (\'gallery\',\'videos\'),
         \'taxonomy\'=>\'series\',
         \'term\' => \'pretty-little-liars\',
                     \'post_status\' => \'publish\',
                    );
                    query_posts( $args );

if (have_posts()) : while(have_posts()) : the_post(); ?>

1 个回复
SO网友:s_ha_dum

query_posts 将重击主查询。您已覆盖原始帖子集。Don\'t use query_posts 而是创建一个新的WP_Query 对象,以及另一个循环。

听起来你想做的事情太复杂了。“混合”两个查询可能不值得这样做。看起来您将有两个查询,所以只需运行两个循环。

您的第一个循环看起来已经有了。

if (have_posts()) : while(have_posts()) : the_post();
  // 
endwhile; endif;
第二个,使用新的WP_Query 对象,看起来像:

$my_query = new WP_Query( $args );
if ($my_query->have_posts()) : while($my_query->have_posts()) : $my_query->the_post();
  // 
endwhile; endif;
如果您确实必须“混合”这两个循环,那么:

$combloop = $posts;
$my_query = new WP_Query( $args );
$combloop = $combloop + $my_query->posts;
foreach ($combloop as $post) {
  setup_postdata($post);
  //
}
循环真的不应该这样合并。我相信它应该可以工作,但您可能会遇到问题,尤其是分页之类的问题。

结束

相关推荐

Exclude Specific Categories?

我当前用于显示类别的代码是<?php foreach((get_the_category()) as $category) { echo $category->cat_name . \' \';}?>我想排除名为“home featured”的类别或ID为“65”的类别如何将其添加到上述代码中?