首次循环Wordpress后无法重置查询以显示随机帖子

时间:2014-01-11 19:00:36

标签: php html wordpress

我有一段代码可以在帖子下显示随机帖子。但是这段代码只向我展示了该帖子的作者的帖子。怎么了?

    <!-- post -->
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 

        <?php the_title(); ?>

        <?php echo get_avatar( get_the_author_meta( 'ID' ), 32 ); ?>
        <?php the_author(); ?>
        <?php the_category(none); ?>
        <?php the_date(); ?>


        <?php the_content();?>
        <?php $key="video"; echo get_post_meta($post->ID, $key, true); ?>
        <?php $key="imagen"; echo get_post_meta($post->ID, $key, true); ?>


    <?php endwhile; ?>

    <?php else : ?>

    <?php endif; ?>

    <!-- ramdom post -->

    <?php $posts = $posts = get_posts('orderby=rand&numberposts=3'); foreach($posts as $post) { ?>
       <?php the_post_thumbnail('photo-thumbnail') ?>
        <?php the_author(); ?>
        <?php the_category(none); ?>


    <?php } ?>

2 个答案:

答案 0 :(得分:1)

尝试在第一次查询后添加<?php wp_reset_query(); ?>

答案 1 :(得分:0)

使用以下代码替换随机邮政编码。在您的示例中,您查询了3个帖子。如果那不是您的意图而您只想要一个帖子在posts_per_page中将3替换为1。

$secondary_posts = new WP_Query( array( 'orderby' => 'rand', 'posts_per_page' => 3, 'no_found_rows' => 1, ) );
if ( $secondary_posts->have_posts() ) : while ( secondary_posts->have_posts() ) : $secondary_posts->the_post();

the_post_thumbnail( 'photo-thumbnail' );
the_author();
the_category();

endwhile; endif;

wp_reset_postdata();