wordpress query_posts 归档问题
Posted
技术标签:
【中文标题】wordpress query_posts 归档问题【英文标题】:wordpress query_posts in archive issue 【发布时间】:2012-04-13 00:43:11 【问题描述】:我想让每个类别中的所有帖子都根据其分数下降(使用 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】:您可以修改 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
【讨论】:
工作就像一个魅力。谢谢你:)以上是关于wordpress query_posts 归档问题的主要内容,如果未能解决你的问题,请参考以下文章
说说WordPress的主查询函数-query_posts()
按年份“query_posts()”问题的 Wordpress 存档
在 query_posts 中获取 WordPress 中的所有帖子类型