Bootstap Carousel不适用于wp_get_recent_posts()函数

时间:2016-02-06 16:10:11

标签: php html wordpress twitter-bootstrap

天赐良好的天才,我遇到了长时间无法解决的问题。 问题是当我尝试在foreach循环中使用wp_get_recent_posts()时,它似乎没有工作,而是显示空块。

        

    <div id="awesome-carousel" class="carousel slide" data-ride="carousel">

      <!-- Wrapper for slides -->
      <div class="carousel-inner" role="listbox">

        <?php 


            $count = 0;
            $post_p = wp_get_recent_posts();
            foreach($post_p as $post):
                if( have_posts() ):
                    while( have_posts() ): the_post(); ?>
                        <div class="item <?php if($count == 0): echo 'active'; endif; ?>">
                          <?php the_post_thumbnail('full'); ?>
                          <div class="carousel-caption">
                              <?php the_title( sprintf('<h1 class="entry-title"><a href="%s">', esc_url( get_permalink() ) ),'</a></h1>' ); ?>
                              <small><?php the_category(' '); ?></small>
                          </div>
                        </div>
                        <?php $bullets .= '<li data-target="#awesome-carousel" data-slide-to="'.$count.'" class="'; ?>
                        <?php if($count == 0): $bullets .='active'; endif; ?>
                        <?php  $bullets .= '"></li>'; ?>
                    <?php endwhile;
                endif;
                wp_reset_postdata();
            $count++;
            endforeach;

        ?>

        <!-- Indicators -->
          <ol class="carousel-indicators">
            <?php echo $bullets; ?>
          </ol>

      </div>

      <!-- Controls -->
      <a class="left carousel-control" href="#awesome-carousel" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="right carousel-control" href="#awesome-carousel" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
      </a>
    </div>

    </div>

谢谢你的建议。

1 个答案:

答案 0 :(得分:1)

问题在于结构,我实现了WP_Query对象并在while循环中添加条件$ lastBlog-&gt; have_posts()。

$categories = get_categories();
$count = 0;
$bullets = '';
foreach($categories as $category):

    $args = array( 
        'type' => 'post',
        'posts_per_page' => 1,
        'category__in' => $category->term_id,
        'category__not_in' => array( 10 ),
    );

    $lastBlog = new WP_Query( $args ); 

    if( $lastBlog->have_posts() ):

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

            <div class="item <?php if($count == 0): echo 'active'; endif; ?>">
              <?php the_post_thumbnail('full'); ?>
              <div class="carousel-caption">
                  <?php the_title( sprintf('<h1 class="entry-title"><a href="%s">', esc_url( get_permalink() ) ),'</a></h1>' ); ?>

                  <small><?php the_category(' '); ?></small>
              </div>
            </div>

            <?php $bullets .= '<li data-target="#awesome-carousel" data-slide-to="'.$count.'" class="'; ?>
            <?php if($count == 0): $bullets .='active'; endif; ?>

            <?php  $bullets .= '"></li>'; ?>

        <?php endwhile;

    endif;

    wp_reset_postdata();

$count++;

endforeach;