2010-08-11 66 views
4

我试图将两个循环添加到两个单独页面上的主题:主页和博客。将第二个循环添加到单独页面上的Wordpress主题

博客基本上是帖子的索引。这是大多数WordPress的页面默认为主页。为了做到这一点,我将“头版显示”设置为“静态”,并将“头版”设置为我在Wordpress页面中设置的主页,并将“帖子页面”设置为博客页面。

现在的问题是,当我将循环添加到主页,它不起作用,可能是因为我有帖子页面设置为不同的页面。

那么我如何让循环在主页以及博客页面上工作?顺便说一句,主页循环只是发布标题+日期+也许摘录。我是否需要完全重写主题,或者这在Wordpress下是不可能的?

哦,我使用的循环是:

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

回答

4

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

Query_posts()可以定义第二个循环的查询字符串。这很容易,也很常见。该代码是一基本结构我从codex page for query_posts()复制:

//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(); 

You can also use 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> 

这两个函数都接受一些在query_posts函数参考页面上解释的参数。上面显示的参数仅为示例。可用参数列表很长。

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

祝你好运!

+0

谢谢你的回应。我是新来的Wordpress,我不知道我可以放哪个代码,因为现在index.php文件现在通过阅读设置链接到“博客”页面。并纠正我,如果我错了,但你不能只是在一个静态WP页面中间的第二个循环的PHP代码? – 2010-08-12 19:53:40

+0

你的主题中应该有一个名为'page.php'的文件。除非您复制并重命名该文件,并在文件所在的/ *模板名称:xxxxxxx/*中更改模板名称,否则它是静态页面模板。你把我的代码放在那个文件中,或者你创建并用作主页模板的代码。如果您确实创建了备用页面模板文件,请确保通过在WP管理区域中编辑您的页面将其设置为主页模板,并通常在编辑页面的右列中的页面模板下拉菜单中选择您的文件屏幕。 – kevtrout 2010-08-12 21:50:20

+0

这不会让它显示在每个静态页面上,而不仅仅是主页吗? – 2010-08-13 05:41:28

0

这可能是因为你使用一个静态页面WordPress的不启动环路为您服务。但是如果这个静态页面是在你的主题中定义的(因为你包含PHP代码来显示循环,我假设它是这样),你总是可以用start a new loop there yourself。你自己拨打query_posts,你的代码应该开始工作。

+0

嗨,谢谢你的回复。我结束了使用“新的WP_query”,因为它是一个嵌套的循环,并使用front-page.php的默认模板。 – 2010-08-14 19:37:22

相关问题