在wordpress循环中重复输出数据

时间:2018-06-24 06:17:01

标签: php wordpress

我有以下使用同一页面中使用的pod制作的模板。第一个模板的输出正确,但是第二个模板也显示与第一个模板相同的数据。我已经将where条件设置为它们各自的类别,但是while循环似乎没有重置。

第一个模板部分

<?php

$terms = get_terms( 'front_page', array(
    'orderby'    => 'count',
    'hide_empty' => 0
));
foreach ($terms as $term) {
    $args = array(
        'post_type' => array(
            'trekking',
            'trek_peak',
            'expedition',
            'great_himalayan_trai'
        ),
        'front_page' => $term->slug
    );
    $query = new WP_Query( $args );
}

while ( $query->have_posts() ) : $query->the_post(); ?> 

  <div class="featured-card featured">
    <div class="featured-card__image featured-card__image--featured">
      <div class="book">
        <a href="https://khumbu-shangrila.com/booking/">
          <p>BOOK NOW</p>
        </a>
      </div>
      <img src="<?php the_post_thumbnail_url(); ?>">
    </div>
    <div class="featured-card__unit-name">
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </div>
    <div class="featured-card__unit-stats featured-card__unit-stats--featured clearfix">
      <div class="one-third">
        <div class="stat"><?php the_field('group_size')?></div>
        <div class="stat-value">Group Size</div>
      </div>
      <div class="one-third">
        <div class="stat"><?php the_field('duration'); ?></div>
        <div class="stat-value">Duration</div>
      </div>

      <div class="one-third no-border">
        <div class="stat"><?php the_field('price'); ?></div>
        <div class="stat-value">Cost</div>
      </div>
    </div>
  </div>

<?php
endwhile;
wp_reset_postdata();
?>

第二部分模板

<?php

$terms = get_terms('front_page', array(
    'orderby'    => 'count',
    'hide_empty' => 0
));
foreach( $terms as $term ) {
    $args = array(
        'post_type' => array(
            'trekking',
            'trek_peak',
            'expedition',
            'great_himalayan_trai'
        ),
        'front_page' => $term->slug
    );
    $query = new WP_Query( $args );
}     
while ( $query->have_posts() ) : $query->the_post(); ?>

<div class="featured-card featured">
  <div class="featured-card__image featured-card__image--featured">
    <div class="book">
      <a href="https://khumbu-shangrila.com/booking/">
        <p>BOOK NOW</p> 
      </a>
    </div>
    <img src="<?php the_post_thumbnail_url(); ?>"/>
  </div>
  <div class="featured-card__unit-name">
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      <p class="status">Trek Confirmed</p>
      <p class="departure">Departure Date : 2018/01/12</p>
    </div>
  <div class="featured-card__unit-stats featured-card__unit-stats--featured clearfix">
    <div class="one-third">
      <div class="stat">2-10 pax</div>
        <div class="stat-value">Group Size</div>
      </div>
      <div class="one-third">
         <div class="stat">16 Days</div>
         <div class="stat-value">Duration</div>
      </div>

      <div class="one-third no-border">
        <div class="stat">$1500</div>
        <div class="stat-value">Cost</div>
      </div>
   </div>
 </div>

<?php
    endwhile;
    wp_reset_postdata();
?>                       

1 个答案:

答案 0 :(得分:0)

我认为您的问题来自WP_Query,您需要指定希望其显示在每个模板中的类别类型,以便我不再重复。

$query = new WP_Query( array( 'cat' => 4 ) );


$query = new WP_Query( array( 'category_name' => 'staff' ) );

您可以在下面阅读有关此内容的更多信息

https://codex.wordpress.org/Class_Reference/WP_Query