按年份“query_posts()”问题的 Wordpress 存档

Posted

技术标签:

【中文标题】按年份“query_posts()”问题的 Wordpress 存档【英文标题】:Wordpress Archive by Year "query_posts()" Problem 【发布时间】:2010-03-18 14:11:36 【问题描述】:

我在我的博客上创建了一个Archive list (also this is my archive.php codes),我想按年显示帖子。

但是当我使用query_posts() 功能排除某些类别并限制帖子时,它会显示所有帖子而不是按年份显示。

例如,this page 显示所有帖子,而不仅仅是 2009 年的帖子。

所以,如果我总结一下这个问题;我想按年份显示存档列表(当我输入/2009/永久链接时)+排除一些类别并限制帖子。

谢谢。

【问题讨论】:

【参考方案1】:

也许当您使用全局变量 $query_string 时会有所帮助。

所以你必须这样使用它

global $query_string;
query_posts($query_string . '&cat=-13,-4,-14,-171&posts_per_page=5&paged='. $paged);

正如法典提到的,这里:query post,

在循环开始之前,在您的一个模板文件中调用 query_posts()。 wp_query 对象将使用您的参数生成一个新的 SQL 查询。当您这样做时,WordPress 会忽略它通过 URL 接收到的其他参数(例如页码或类别)。如果要保留该信息,可以在调用 query_posts() 时使用 $query_string 全局变量。

【讨论】:

谢谢。它正在工作,但分页存在新问题。如果我单击此页面 (snipurl.com/uwvxv) 上的上一个帖子链接 (Önceki Sayfa -> (snipurl.com/uwvyo)),那么它会返回错误 404 页面。这是我的新 archive.php 代码 (pastie.org/private/0ddd1n4nxhoouguq3ahdfg)。我该如何解决这个问题? 如果你使用codex.wordpress.org/Function_Reference/wp_reset_query会发生什么| wp_reset_query(),在循环之后和分页之前... 谢谢您,先生。它奏效了。我想问关于这个话题的新问题; query_posts() 函数不排除某些类别(即:类别 id=13)。最新的archive.php 代码在这里:bit.ly/bjYljq 为什么会这样?我不明白。 您如何在 $query_post 和 cat=-13, -4,.. 之间使用 '&',正如我在评论部分中所写的那样。如果这不起作用,请告诉我,我回到办公室后会尝试弄清楚 query_posts($query_string.'&cat=-13,-4,-14,-171&posts_per_page=5&paged='. $paged) ;

以上是关于按年份“query_posts()”问题的 Wordpress 存档的主要内容,如果未能解决你的问题,请参考以下文章

wordpress query_posts 归档问题

在 query_posts 中获取 WordPress 中的所有帖子类型

WordPress函数query_posts用法汇总

Tableau:如何按年份计算?

说说WordPress的主查询函数-query_posts()

SQL 按年份分组给出不正确的结果