我正在尝试在两个单独的页面上为主题添加两个循环:主页和博客 .
博客基本上是帖子的索引 . 这是大多数Wordpress页面默认为主页的内容 . 为了做到这一点,我去了“阅读设置”并将“首页显示”设置为“静态”,将“首页”设置为我在Wordpress页面中设置的主页和设置为博客页面的“帖子页面” .
现在的问题是,当我将循环添加到主页时,它不起作用,大概是因为我将帖子页面设置为不同的页面 .
那么如何让循环在主页和博客页面上运行?顺便说一句,主页循环只是帖子 Headers 日期可能摘录 . 我是否需要完全重写主题,或者这不是Wordpress下的可能性?
哦,我正在使用的循环是:
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post() ?>
2 回答
在WordPress中至少有三种方法可以运行自定义查询 .
Query_posts()可以定义第二个循环的查询字符串 . 这很容易也很常见 . 这段代码是我从codex page for query_posts()复制的基本结构:
You can also use get_posts()这是类似的 .
这两个函数都接受在query_posts函数引用页面上解释的许多参数 . 上面显示的参数仅是示例 . 可用args列表很长 .
您可以使用的第三种方法是实例化WordPress Query object的另一个实例(WP的主查询方法) . 在WordPress运行默认的wp_query之后,Query_posts和get_posts都会对数据库进行第二次调用 . 如果您非常关注性能或减少db命中,我建议您学习如何与wp_query交互以在运行之前修改默认查询 . wp_query类为您提供了许多简单的方法来修改查询 .
祝好运!
WordPress可能不会为您启动循环,因为您使用的是静态页面 . 但是如果在你的主题中定义了这个静态页面(因为你包含了显示循环的PHP代码,我认为它是),你总是可以start a new loop there yourself . 只需自己调用
query_posts
,您的代码就应该开始工作了 .