我的主题与静态首页的循环不工作

时间:2012-03-15 作者:albertein

我正在开发一个wordpress主题,它使用静态页面作为首页。

我的wordpress配置为使用“主页”作为其首页,使用“博客”页面显示博客帖子。

当我尝试使用“博客”页面上的循环列出我收到的奇怪行为的帖子时,循环运行良好,但任何获取帖子信息的方法都会返回空字符串。

示例代码:

if (have_posts()) {
  while(have_posts()) {
    the_post();
    $posts[$index] = array(
                \'title\' => get_the_title(),
                \'permalink\' => get_permalink(get_the_ID()),
                \'content\' => get_the_content(),
                \'day\' => get_the_date(\'j\'),
                \'month\' => get_the_date(\'M\')
                );
    $index++;

  }
}
如果我有5篇文章,你会返回一个包含5个元素的数组,所有元素的值都是空字符串。

如果我添加query_posts(\'posts_per_page=5\');. 这是可行的,但不需要这样做。

我错过了什么?

您可以在github上查看完整的源代码:https://github.com/albertein/coltsintheme

非常感谢。

更新:即使我避免使用静态页面作为首页(删除front-page.php并配置wp-con-Settings>Reaging),我也会得到同样的结果,这对我来说似乎很奇怪,但似乎我遗漏了一些东西。

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

就在我发布代码片段之前,我做了一些类似的事情$posts = array();, wordpress似乎将要在循环中使用的帖子集合保存在一个同名的变量中,因此我正在处理数据,只是做了一些更改$posts 对于$items 现在一切正常。

结束

相关推荐

simply loop through posts

我知道这是一个真正的新手问题,但我似乎无法从帖子中获得循环。它所做的只是从页面本身中提取。我制作了一个模板并添加了循环。<?php if( have_posts() ) { while( have_posts() ) { the_post(); ?> <h2><?php the_title(); ?></h2> <?php } } ?>