1

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

这就是我的 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 个子类别。

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

4

1 回答 1

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

于 2012-04-13T01:08:53.247 回答