存档问题中的wordpress query_posts

时间:2012-04-13 00:43:11

标签: wordpress archive posts

我想根据分数(使用GD星级评分插件)让每个类别中的所有帖子都下降。 我在插件网站上发现,我需要在archive.php文件中添加query_posts("gdsr_sort=rating");

这就是我的archive.php在添加query_posts后的样子:

    <?php query_posts("gdsr_sort=rating"); ?>
<?php while (have_posts()) : the_post(); ?>
    <div <?php post_class() ?>><li>
        <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>

        <?php if ( has_post_thumbnail() ) : ?>
            <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>
        <?php endif; ?>

        <?php the_content('Read more...'); ?>
    </li>
    </div>
    <?php endwhile; ?>
        <div class="clear"></div>
    <?php wp_reset_query(); ?>

它搞砸了,所以我尝试使用query_posts('posts_per_page=5'); 好消息是它每页显示5篇文章。 坏的是它显示错误的文章。确切地说,无论我去哪个子类别......都会显示相同的文章,这些文章不应该属于该子类别。当你转到下一页时......正在显示相同的文章。这些随处可见的文章只属于1个子类别。 我还要提一下,我有10个类别,每个都有2-3个子类别。

我在这里不知所措,希望你理解我的解释。

1 个答案:

答案 0 :(得分:2)

您可以修改wordpress查询,而不是创建新查询。我不知道你使用的插件,但我认为这应该有效:

function change_archive_query( $query ) {
    if ( $query->is_main_query() && $query->is_archive()) {
         $query->set( 'gdsr_sort', 'rating' );
    }
}
add_action( 'pre_get_posts', 'change_archive_query' );

你可以把它放在你的functions.php中。在archive.php中,您可以删除query_posts