如何获取静态页面中的帖子列表而不是首页?

时间:2010-10-22 作者:FOR

因此,对于成千上万使用WP作为CMS的人来说,一种典型的方法是使用设置>阅读管理页面中的“静态页面”选项。

然而,我的情况不同:我们的首页显示的是静态内容(home.php驱动它),我们有一个第二个静态页面(称为新闻),它应该显示最新帖子的列表(通常在普通博客的首页上可以找到)。

我将新闻页面设置为使用自定义模板(page NewsIndex.php);基于二十十的档案。php模板,这个文件显示一个标题,调用rewind\\u posts(),然后调用get\\u template\\u part(\'loop\',\'newindex\'),这样我们就进入了循环。php(或loop-newsindex.php,如果存在)。桃子。

循环。php有您典型的循环结构(同样,基于TwentyTen的loop.php模板-经过调整以简化,因为我们不需要3种类型的循环):

<?php while ( have_posts() ) : the_post(); ?>
然而,当我们访问该页面时,这个循环似乎使用当前URL来确定要显示的帖子,就好像新闻页面定义了一个类别一样——这对我们来说并非如此。我可以使用什么样的query\\u帖子来模拟WP通常在您访问典型博客首页时为您运行的query\\u帖子?

2 个回复
最合适的回答,由SO网友:Adam Thompson 整理而成

我在博客上检索帖子的方法是使用以下内容:

<?php $recentPosts = new WP_Query(); $recentPosts->query(\'showposts=5&cat=CAT_ID_GOES_HERE\'); while($recentPosts->have_posts()): $recentPosts->the_post(); ?>
然后,您可以创建代码来控制每个帖子的显示。因此,举一个非常简单的例子:

<h1 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
然后在文章的末尾,您只需结束while循环:

<?php endwhile; ?>

SO网友:Rarst

只是为了确保-您没有使用Reading 这里有设置吗?只有常规主页和常规静态页面?

您的News 页面是静态页面,所以它的循环(从URL创建的本机WP循环)应该反映这一点(所以不确定它看起来是类别)

  • query_posts() 是用于调整此类本机循环的函数。您不应该在这里使用它,因为您会试图将静态页面强制更改为索引页面,最终导致可怕的错误WP_Query 或get_posts() 若要在静态页面上显示某些帖子,可能无法进行分页
  • 总的来说,我觉得你在重塑这里的车轮。Settings > Reading 看起来很般配。

    1. Front page 使用静态内容和front-page.php 模板
    2. Posts page 将自动为最新帖子使用默认循环,或者可以使用home.php 模板

      PS二十十loop.php 吓到我了。看起来可用性和常识是为了获得最大的条件灵活性而牺牲的。

    结束

    相关推荐

    Custom theme - pages in menu

    我很高兴有机会成为这个社区的一员。最近我决定开始学习wordpress和主题构建,所以这是我在这里的第一篇帖子。我在网上阅读了一些关于如何构建自定义主题的教程。我的问题是,如何构建自定义菜单?例如,我在psd上有模板,我将其切片,然后我想将其集成到wordpress上。我支持先构建页面。那么,如何使用自定义css/xhtml构建菜单,使每个链接都指向我创建的页面?也许描述不清楚,但我想你明白我的意思。提前感谢。