0

我是 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; ?>
4

1 回答 1

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; ?>
于 2013-10-20T17:27:48.540 回答