循环通过wordpress中的粘贴帖子?

时间:2013-10-20 17:23:50

标签: php wordpress

我是Wordpress的新手,我试图使用此代码遍历粘性帖子:

<?php
      /* Get all sticky posts */
      $sticky = get_option( 'sticky_posts' );

      /* Sort the stickies with the newest ones at the top */
      rsort( $sticky );


      /* Query sticky posts */
      $stickies = query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
      ?>

      <?php
       foreach ($stickies as $sticky) {

       the_title();
       comments_number( 'Pas de commentaires', '1 commentaire', '% commentaires' );


       }

      ?>

然而在输出中,如果我有2个贴子,第一个显示两次......

有什么想法吗?

非常感谢你的帮助!

编辑:

似乎

foreach ($stickies['WP_Post Object'] as $sticky) { 

获得好的两篇文章,但我仍然有这样的错误消息:警告:为foreach()提供的参数无效...

完整代码:

 <?php
  /* Get all sticky posts */
  $sticky = get_option( 'sticky_posts' );
  /* Sort the stickies with the newest ones at the top */
  rsort( $sticky );
  $stickies = query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
  ?>

  <?php
   foreach ($stickies['WP_Post Object'] as $sticky) {

   if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
     the_post_thumbnail('thumbnail', array('class'  => "media-object img-rounded"));
   } 
   the_title();
   comments_number( 'Pas de commentaires', '1 commentaire', '% commentaires' );


   }

  ?>

 <?php if (have_posts()) : ?>

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

  <div class="media">
    <a class="pull-left" href="<?php the_permalink() ?>">
    <?php 
    if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
      the_post_thumbnail('thumbnail', array('class' => "media-object img-rounded"));
    } 
    ?>
    </a>
    <div class="media-body">
      <h3 class="media-heading"><a class="permalink" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"> <?php the_title(); ?></a></h3>
      Par <?php the_author(); ?>, le <?php the_time('j F Y'); ?> - <?php comments_number( 'Pas de commentaires', '1 commentaire', '% commentaires' ); ?>
      <?php the_excerpt(); ?>
    </div>
  </div> <!-- /media -->



  <?php endwhile; ?>


  <?php endif; ?>

1 个答案:

答案 0 :(得分:1)

试试这个:

$stickies = query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1, 'ignore_sticky_posts' => true) );

修改

我认为你应该使用标准的wordpress帖子循环:

while (have_posts()) : the_post();
    the_title();
endwhile;

修改

您可以使用rewind_posts()开始新的循环:

// main loop
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>

// rewind
<?php rewind_posts(); ?>

// new loop
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>