在单独页面上为Wordpress主题添加第二个循环

在单独页面上为Wordpress主题添加第二个循环,wordpress,loops,wordpress-theming,Wordpress,Loops,Wordpress Theming,我试图在两个单独的页面上为一个主题添加两个循环:主页和博客 博客基本上是文章的索引。这是大多数Wordpress页面的默认主页。为了实现这一点,我转到“阅读设置”并将“首页显示”设置为“静态”,将“首页”设置为我在Wordpress页面中设置的主页,将“帖子页面”设置为博客页面 现在的问题是,当我将循环添加到主页时,它不起作用,可能是因为我将posts页面设置为另一个页面 那么,如何让循环在主页和博客页面上工作呢?顺便说一句,主页循环只是文章标题+日期+可能的摘录。我是否需要完全修改主题,或者这

我试图在两个单独的页面上为一个主题添加两个循环:主页和博客

博客基本上是文章的索引。这是大多数Wordpress页面的默认主页。为了实现这一点,我转到“阅读设置”并将“首页显示”设置为“静态”,将“首页”设置为我在Wordpress页面中设置的主页,将“帖子页面”设置为博客页面

现在的问题是,当我将循环添加到主页时,它不起作用,可能是因为我将posts页面设置为另一个页面

那么,如何让循环在主页和博客页面上工作呢?顺便说一句,主页循环只是文章标题+日期+可能的摘录。我是否需要完全修改主题,或者这在Wordpress下是不可能的

哦,我使用的循环是:

<?php if(have_posts()) : ?>
        <?php while(have_posts()) : the_post() ?>


WordPress可能不会为您启动循环,因为您使用的是静态页面。但是,如果这个静态页面是在您的主题中定义的(因为您包含了显示循环的PHP代码,我假设是这样),那么您总是可以。只要自己调用
query\u posts
,您的代码就会开始工作。

在WordPress中运行自定义查询至少有三种方法

Query_posts()可以定义第二个循环的查询字符串。这很容易,也很常见。此代码是我从以下文件复制的基本结构:

这是相似的

<ul>
 <?php
 global $post;
 $myposts = get_posts('numberposts=5&offset=1&category=1');
 foreach($myposts as $post) :
   setup_postdata($post);
 ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
 <?php endforeach; ?>
 </ul> 
这两个函数都接受一些参数,这些参数在query_posts函数参考页上进行了解释。上面显示的参数只是示例。可用参数的列表很长

第三种方法是实例化(WP的主查询方法)的另一个实例。Query_posts和get_posts都会在WordPress运行默认wp_查询后再次调用数据库。如果您非常关心性能或减少数据库命中率,我建议您学习如何与wp_查询交互,以便在运行默认查询之前对其进行修改。wp_query类为您提供了许多修改查询的简单方法


祝你好运

谢谢你的回复。我是Wordpress的新手,不知道该把代码放在哪里,因为现在index.php文件通过阅读设置链接到“Blog”页面。如果我错了,请纠正我,但是你不能仅仅在静态WP页面中间的第二个循环中使用PHP代码,你的主题中应该有一个名为“Page .php”的文件。除非您复制并重命名该模板,并更改文件中显示/*模板名称:xxxxxxx/*的模板名称,否则它是静态页面模板。您将我的代码放在该文件中,或者您创建并用作主页模板的文件中。如果确实创建了备用页面模板文件,请确保通过在WP管理区域编辑页面将其设置为主页模板,然后在页面模板下拉列表中选择您的文件,通常在编辑页面屏幕的右栏中。这不会使它显示在每个静态页面上,而不仅仅是主页上吗?如果您有其他WordPress页面使用page.php模板,请复制该文件,然后重命名它。同样在文件中,您将在顶部附近看到“/*模板名称:页面模板*/”。“页面模板”可能是其他内容。将名称更改为唯一的名称。然后,通过将页面模板更改为您创建的页面模板,编辑要在管理区域中显示自定义循环的WordPress页面。在右栏中,您将看到一个下拉选择框,用于选择页面模板。您将看到列出的自定义模板。选择它并保存。现在第二个循环将只出现在该页面上好的,谢谢。甚至不知道模板。我最终使用了front-page.php,因为它实际上是给定阅读设置时主页默认使用的模板。至于循环,我使用了“newwp_query()”,现在它工作得很好。谢谢你给我指出了正确的方向。嗨,谢谢你的回复。我最终使用了“newwp_查询”,因为它是一个嵌套的a循环,并且使用了默认模板front-page.php。
<ul>
 <?php
 global $post;
 $myposts = get_posts('numberposts=5&offset=1&category=1');
 foreach($myposts as $post) :
   setup_postdata($post);
 ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
 <?php endforeach; ?>
 </ul>