为什么第一个循环接受第二个循环的参数?

时间:2020-07-28 作者:nsog8sm43x

我创建了一个index.php 具有两个循环的文件。第一个是标准的,应该只显示页面的标题。就在它下面是类的第二个循环WP_Query. 我的问题是,第一个循环从第二个循环中获取参数,页面标题会显示多次。我在文档中添加了wp_reset_postdata() 在每个循环的末尾,但这并不能解决我的问题。你们谁能给我解释一下,并指出解决办法?

<?php get_header(); ?>
  <main role="main">
    <section class="container">
      <div class="row">
        <div class="col-lg-8">
        <?php if ( have_posts() ) : ?>
          <?php while ( have_posts() ) : the_post(); ?>
          <h1 class="text-center><?php the_title(); ?></h1>
          <?php endwhile; ?>
        <?php endif; ?>
        <?php wp_reset_postdata(); ?>
          <div class="row">
          <?php
          $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
          $args = array(\'post_type\'=>\'post\', \'post_status\'=>\'publish\', \'paged\'=>$paged );
          $post_query = new WP_Query($args); ?>
          <?php if ( $post_query->have_posts() ) : ?>
            <?php while ( $post_query->have_posts() ) : $post_query->the_post(); ?>
            <div class="col-lg-4">
              <article class="news-item">
              <?php $image = get_the_post_thumbnail_url(get_the_ID(), \'medium\'); ?>
                <a class="news-img" href="<?php echo get_permalink(); ?>" style="background-image: url(<?php echo esc_url($image); ?>);">
                </a>
                <div class="news-copy">
                  <h2 class="news-title"><?php the_title(); ?></h2>
                  <?php the_excerpt(); ?>
                </div>
                <div class="news">
                  <div class="news-date"><?php echo get_the_date( \'d/m/Y\' ); ?></div>
                  <a class="btn" href="<?php echo get_permalink(); ?>">
                    <?php if (function_exists(\'pll_e\')) { pll_e(\'More\'); } ?>
                    <i class="ti-angle-right"></i>
                  </a>
                </div>
              </article>
            </div>
            <?php endwhile; ?>
          <?php else : ?>
            <p><?php if (function_exists(\'pll_e\')) { pll_e(\'Sorry, xxx...\'); } ?></p>
          <?php endif; ?>
          <?php the_posts_pagination(); ?>
          <?php wp_reset_postdata(); ?>
          </div>
        </div>
      </div>
    </section>
  </main>
<?php get_footer(); ?>

1 个回复
SO网友:maulik zwt

请尝试以下代码:

<?php get_header(); ?>
  <main role="main">
    <section class="container">
      <div class="row">
        <div class="col-lg-8">
        <?php if ( have_posts() ) : ?>
          <?php while ( have_posts() ) : the_post(); ?>
          <h1 class="text-center><?php the_title(); ?></h1>
          <?php endwhile; ?>
           <?php wp_reset_postdata(); ?>
        <?php endif; ?>
        
          <div class="row">
          <?php
          $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
          $args = array(\'post_type\'=>\'post\', \'post_status\'=>\'publish\', \'paged\'=>$paged );
          $post_query = new WP_Query($args); ?>
          <?php if ( $post_query->have_posts() ) : ?>
            <?php while ( $post_query->have_posts() ) : $post_query->the_post(); ?>
            <div class="col-lg-4">
              <article class="news-item">
              <?php $image = get_the_post_thumbnail_url(get_the_ID(), \'medium\'); ?>
                <a class="news-img" href="<?php echo get_permalink(); ?>" style="background-image: url(<?php echo esc_url($image); ?>);">
                </a>
                <div class="news-copy">
                  <h2 class="news-title"><?php the_title(); ?></h2>
                  <?php the_excerpt(); ?>
                </div>
                <div class="news">
                  <div class="news-date"><?php echo get_the_date( \'d/m/Y\' ); ?></div>
                  <a class="btn" href="<?php echo get_permalink(); ?>">
                    <?php if (function_exists(\'pll_e\')) { pll_e(\'More\'); } ?>
                    <i class="ti-angle-right"></i>
                  </a>
                </div>
              </article>
            </div>
            <?php endwhile; ?>
             <?php wp_reset_postdata(); ?>
          <?php else : ?>
            <p><?php if (function_exists(\'pll_e\')) { pll_e(\'Sorry, xxx...\'); } ?></p>
          <?php endif; ?>
          <?php the_posts_pagination(); ?>
          
          </div>
        </div>
      </div>
    </section>
  </main>
<?php get_footer(); ?>

相关推荐

Get Current User ID Inside a Loop返回0表示短码

我有一个函数,它对给定作者的所有帖子都有一个循环。我使用get_current_user_id() 但这在循环中似乎不起作用,或者可能是它的短代码问题。我的函数在shortcode的帮助下运行。当前用户总是返回0,因此它会显示我网站上所有帖子的元数据。function get_meta_value_by_meta_key(){ $author_id = \'get_current_user_id()\'; // do stuff to get user I $author