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

Ben*_*ley 5 wordpress loops wordpress-theming

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

博客基本上是帖子的索引.这是大多数Wordpress页面默认为主页的内容.为了做到这一点,我去了"阅读设置"并将"首页显示"设置为"静态",将"首页"设置为我在Wordpress页面中设置的主页和设置为博客页面的"帖子页面".

现在的问题是,当我将循环添加到主页时,它不起作用,大概是因为我将帖子页面设置为不同的页面.

那么如何让循环在主页和博客页面上运行?顺便说一句,主页循环只是帖子标题+日期+可能摘录.我是否需要完全重写主题,或者这不是Wordpress下的可能性?

哦,我正在使用的循环是:

<?php if(have_posts()) : ?>
        <?php while(have_posts()) : the_post() ?>
Run Code Online (Sandbox Code Playgroud)

kev*_*out 5

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

Query_posts()可以定义第二个循环的查询字符串.这很容易也很常见.此代码是我从query_posts()codex页面复制的基本结构:

//The Query
query_posts('posts_per_page=5');

//The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
 ..
endwhile; else:
 ..
endif;

//Reset Query
wp_reset_query();
Run Code Online (Sandbox Code Playgroud)

您也可以使用类似的get_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> 
Run Code Online (Sandbox Code Playgroud)

这两个函数都接受在query_posts函数引用页面上解释的许多参数.上面显示的参数仅是示例.可用args列表很长.

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

祝好运!