orderby:date not working

时间:2013-12-08 作者:Donna

我一直在寻找答案,似乎有很多相反的问题的答案。我正在尝试使用以下代码按发布日期排序,而不是按修改日期排序:

query_posts($query_string . \'&orderby=date&order=DESC&posts_per_page=-1\');
但它仍然是按修改日期排序而不是发布日期,有人能帮忙吗?

提前感谢!

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

您不必指定orderby=date. 这是默认设置。如果查看查询,您将看到使用的字段是post_date, 这是发布日期,而不是修改日期--post_modified.

你可以通过倾销来证明这一点$wp_query 在您致电query_posts. 或尝试:

$q = new WP_Query(\'posts_per_page=-1\');
var_dump($q->request);
没有其他参数ORDER BY wp_posts.post_date DESC.

如果您没有获得该订单,那么已经有一个过滤器正在更改默认行为。我猜不出是什么添加了过滤器。

是的,please don\'t use query_posts.

应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。

http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)

结束

相关推荐

如何在循环完成后重置/删除添加的过滤器‘POSTS_JOIN’和‘POSTS_ORDERBY’?

我正在使用以下过滤器对类别存档页面上显示的结果进行排序:posts_join 和posts_orderby. 有一个小部件,显示最近的帖子。我正在使用WordPress的默认最近帖子小部件。但它没有显示任何结果。当我调查时,我发现应用的过滤器正在应用于此查询。因此,我尝试使用以下代码删除过滤器:remove_filter(\'posts_join\', \'my_filter_join\'); remove_filter(\'posts_orderby\', \'my_filter_orderby