Wordpress:在一个页面上显示一个月的所有文章

时间:2010-03-04 09:36:28

标签: wordpress

我想将Wordpress的默认行为更改为同一页面上显示的文章数量如下:

  • 显示主页时,应显示10篇最新文章,10为可通过管理面板更改的设置(posts_per_page)
  • 在显示特定月份的文章时(通过以下网址给出:?m=200906&order=ASC,我想在同一页面上显示本月的所有文章(换句话说,我不想要必须使用以前的条目下一个条目浏览文章。
编辑:我忘记了其他一些我想改变的事情:

在显示指定月份的所有文章的页面上,我想显示每篇文章的评论。

这可能吗?怎么样?

3 个答案:

答案 0 :(得分:4)

在您的archive.php中

,将其添加到模板顶部:

$allowedOrder = array('ASC', 'DESC');
if(isset($_GET['m'])){
   $order = isset($_GET['order']) ? (in_array($_GET['order'], $allowedOrder) ? $_GET['order'] : $allowedOrder[0]) : $allowedOrder[0];
   $m = $_GET['m'];
   $y = substr($m, 0, 4);
   $m = substr($m, -2);
   $query = "posts_per_page=-1&year=$y&monthnum=$m&order=$order";
   query_posts($query);
 }

或者,如果您只有一个大的index.php模板文件,请执行以下操作:

$allowedOrder = array('ASC', 'DESC');
if(is_month()){
   $order = isset($_GET['order']) ? (in_array($_GET['order'], $allowedOrder) ? $_GET['order'] : $allowedOrder[0]) : $allowedOrder[0];
   $m = $_GET['m'];
   $y = substr($m, 0, 4);
   $m = substr($m, -2);
   $query = "posts_per_page=-1&year=$y&monthnum=$m&order=$order";
   query_posts($query);
}

有关更多详细信息,请查看codex页面:

答案 1 :(得分:0)

如果您查看codex页面,可以使用query_post执行此操作,它会为您提供有关如何执行此操作的详细信息:

http://codex.wordpress.org/Template_Tags/query_posts

答案 2 :(得分:0)

结帐WP_query query_postsWP_query之间也存在一些差异。 两者都用于创建自定义循环的查询。如果您想要更好地控制查询,请使用WP_query

  1. http://codex.wordpress.org/Custom_Queries
  2. http://codex.wordpress.org/Function_Reference/WP_Query
  3. http://codex.wordpress.org/Template_Tags/query_posts