边栏中的循环完成不正确?

时间:2012-12-08 23:50:32

标签: wordpress

我正在尝试在侧边栏中添加“电影评论”部分,但它也在改变我的主循环。以下是我的守则:

//Movie All Reviews
function display_movie_reviews( $query ) {
    if ( $query->is_category('movies') ) {
        $query->set( 'tag', 'movie-reviews' );
    }
}
add_action( 'pre_get_posts', 'display_movie_reviews' );

它会显示我想要的评论,但site.com/movies/的类别页面仅显示评论

这里是侧边栏的循环:

<ul>
    <?php if ( have_posts() ) : ?>
    <?php /* Start the Loop */ ?>
    <?php add_action( 'pre_get_posts', 'display_movie_reviews' ); ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part( 'sidebar-reviews', get_post_format() ); ?>
    <?php endwhile; ?>
    <?php else : ?>
    <?php get_template_part( 'no-results', 'index' ); ?>
    <?php endif; ?>
</ul>

sidebar-reviews

<li>
    <a class="sidebar-thumb" href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'sidebar-thumb',array('title' => "")); ?></a>       
    <div class="sidebar-text">
        <a class="sidebar-link" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <span class="sidebar-rating"><!-- rating here --></span>
    </div>
</li>

1 个答案:

答案 0 :(得分:0)

尝试wp_reset_query(); http://codex.wordpress.org/Function_Reference/wp_reset_query

  

此函数会破坏自定义循环上使用的上一个查询。   应在The Loop之后调用函数以确保条件标记   按预期工作。