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