一个循环,显示单个帖子页面上的所有帖子

时间:2014-11-20 08:26:00

标签: wordpress wordpress-theming

当有人点击我的一个帖子后,我希望他看到这篇文章以及我发过的其他帖子。我试图复制和粘贴不同的循环。为什么single.php上的第二个默认循环只显示已存在的相同帖子?

谢谢。这是single.php: 第四编辑:     

<div id="primary" class="site-content">
    <div id="content" role="main">

        <?php while ( have_posts() ) : the_post(); ?>

            <?php get_template_part( 'content', get_post_format() ); ?>

            <?php comments_template( '', true ); ?>

        <?php endwhile; // end of the loop. ?>
        <?php endif; ?>

  <?php wp_reset_postdata(); // reset the post data so we can run another query ?>
  <?php get_sidebar(); ?>

  <?php 
  // The Second Query
   $the_query = new WP_Query();

// The Loop
if ( $the_query->have_posts() ):
    while ( $the_query->have_posts() ):
        $the_query->the_post(); ?>

    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
        <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
        <?php the_content(); ?>
    </div>

        <?php endwhile; ?>
        <?php endif; ?>
    <?php wp_reset_postdata(); // Restore original Post ?>
    </div><!-- #content -->

</div><!-- #primary -->

2 个答案:

答案 0 :(得分:0)

你不能再复制和粘贴循环,并希望它能向你展示不同的东西。你需要先做wp_reset_postdata()。然后,您需要编写一个新查询,并执行一个新循环。例如:

<?php // First Query ?>
<?php wp_reset_postdata(); // reset the post data so we can run another query ?>
<?php get_sidebar(); ?>

<?php 
    // The Second Query
    $the_query = new WP_Query();

    // The Loop
    if ( $the_query->have_posts() ):
        while ( $the_query->have_posts() ):
            $the_query->the_post(); ?>

        <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
            <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
            <?php the_content(); ?>
        </div>

        <?php endwhile; ?>
    <?php endif; ?>
<?php wp_reset_postdata(); // Restore original Post ?>

详细了解如何撰写查询in the Codex

答案 1 :(得分:0)