月度和类别视图的升序排序,即?m=201204,?cat=4

时间:2012-03-27 作者:Jason Hartley

我将我的帖子按升序排列(从最早到最新),因为我使用Wordpress作为网站,以伴随基于原始博客出版的书籍。为此,我将以下代码放在索引中的循环之前。连接主题自定义版本的php:

<?php
    $wp_query->set(\'orderby\', \'post_date\');
    $wp_query->set(\'order\', \'ASC\');
    $wp_query->get_posts();
?>
这对于主索引和按页面显示帖子都很有效,即:
index.php?paged=1

但是,当按月份或类别检索帖子时,排序顺序默认为DESC,即:http://www.justanothersoldier.com/?cat=4

http://www.justanothersoldier.com/?m=200312

我只是希望一切都是ASC。是否有每月和类别模板需要编辑?谢谢

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

你可以在posts_clauses 筛选和更改ASCDESC 有一个简单的str_replace. 筛选器有一个参数$pieces, 它是MySQL语句部分的数组。

SO网友:Frank

在某些情况下,您可以只向url添加参数,如

http://www.justanothersoldier.com/?cat=4&order=asc

如果您使用菜单项访问类别,每个类别都有由这样的url参数定义的特定排序顺序,那么这就足够了。

(如何将某些类别与单独的“按类别定义的”排序顺序相关联,以便即使在通过单击帖子的类别标签选择类别时也能正常工作-在这种情况下,所需的url参数再次丢失-是另一个问题。我在这里发布了:How to choose a sort order (for posts) per category? (ideally when creating a new category) - 第一个答案再次建议修改一些代码。)

结束

相关推荐

orderby ignored by wp_query

使用以下代码,我不会得到按标题排序的结果集。无论我给“orderby”和“order”赋予什么值,我都会得到相同的排序。参数似乎被忽略(或覆盖?)通过其他方式。。知道我如何解决这个问题吗?是否有一个特定的过滤器,我应该看看,一些插件可以通过覆盖这个?下面的代码是否应该开箱即用?如果它看起来是正确的,一定有什么东西在干扰。$args = Array( \'post_type\' => \'post\' \'category_name\' => \'reviews\