更改分类模板上的POST顺序

时间:2013-07-29 作者:dorich

我有一个分类模板,它返回正确的帖子(实际上是一个自定义帖子类型),但我想改变帖子的显示顺序。然而,我所尝试的一切都不会改变帖子的顺序。我假设既然帖子已经返回,那么我应该使用“query\\u posts”来更改帖子的顺序。照着based on the codex, 我在模板上的循环之前添加了以下内容:

<?php 
global $query_string;
query_posts( $query_string . \'&order=>ASC\');
?>
将“ASC”更改为“DESC”不会对列表产生任何更改。

注意:我想要的最终结果将比这个示例更复杂,但目前我甚至无法得到像上面这样的简单排序。

我也尝试过使用这种方法

<?php $sectionarg = array(
                     \'order\' => \'ASC\',
                        );
query_posts($sectionarg);       ?>      
但这完全破坏了原有的返回帖子列表,并将其替换为常规帖子。因此,要维护原始查询,您必须使用第一种方法,但接下来如何对返回的帖子进行排序?如有任何建议,将不胜感激。谢谢

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

我假设既然帖子已经返回,那么我应该使用“query\\u posts”来更改帖子的顺序。

这种假设是错误的。你应该尽量不要使用query_posts.

在上使用筛选器pre_get_posts.

function pregp_wpse_108235( $qry ) {
    if ( $qry->is_main_query() && $qry->is_tax() ) {
        $qry->set( \'order\', \'ASC\' );
    }
}
add_action( \'pre_get_posts\', \'pregp_wpse_108235\' );
但这完全破坏了原有的返回帖子列表,并将其替换为常规帖子。

是的,您所做的将返回正常的post索引。您没有提供任何分类参数,但作为query_posts 不管怎么说,这是错误的做法,没有必要担心。

结束

相关推荐

meta_value_num sort glitch

我有一个自定义查询,我有一个包含序列号的元键:1.1、1.2、2.1、2.2。。。11.1等当数字序列达到两位数时,即5.11、5.12、5.21,就会出现问题这些看起来是这样的5.1、5.11、5.12、5.2、5.21等,而不是5.1、5.2、5.3。。。5.11、5.12等我怎样才能使它们正确排序!?$loop = new WP_Query(array( \'factsheet_category\' => $term->slug, \'orderby\'