如何在single.php中进行第二次循环工作?

时间:2014-11-20 10:06:40

标签: php wordpress syntax wordpress-theming

- 简单的博客 - 二十二个儿童主题

我需要:single.php中的第二个循环,显示所选帖子和下面的所有其他帖子。

到目前为止,我在single.php中得到了什么(结果是空白页):

<?php get_header(); ?>

<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 -->

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

<?php get_header(); ?>
    <div id="primary" class="site-content">
        <div id="content" role="main">

            <?php while ( have_posts() ) : 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 comments_template( '', true ); ?>

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

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

     <?php 

     $args_second = array(
            'posts_per_page' => -1,
        );

     // The Second Query
     $second_query = new WP_Query( $args_second );

     // The Loop
     if ( $second_query->have_posts() ):
        while ( $second_query->have_posts() ):
            $second_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 -->

注意:

  1. 您需要使用单循环内的_title()和the_content()正确显示标题和内容。
  2. 要显示其他帖子,您需要查询它们,您可以通过查看上面的代码快速了解。
  3. 我会为你留下造型。
  4. 经过测试和运作。