上次我查了一下我知道如何写一个循环来显示我的所有帖子.....我怎么写这个:
if (have_posts()){
while (have_posts()): the_post();
?>
<div clas="span6">
<h3><a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a></h3>
<p><?php echo the_excerpt(); ?></p>
</div>
<?php
endwhile;
}
我遇到了一个问题:
如果我有以下帖子:
Post1,Post2,Post3
帖子1 - 2将显示在一个列表中,直到我写一篇新帖子(帖子4)并发布它,帖子3将显示在该列表中。
我的循环怎么了?
之前从未遇到过这个问题。
注意:正在使用WordPress 3.5。
我检查了WordPress Docs以确保我做的事情是正确的,据我所知。
答案 0 :(得分:0)
您可以像下面一样使用它。这主要用于wordpress。
if (have_posts()) : // your code if (have_posts()){
while (have_posts()): the_post();
?>
<div clas="span6">
<h3><a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a></h3>
<p><?php echo the_excerpt(); ?></p>
</div>
<?php
endwhile;
endif; //your code here }
希望它可以奏效。
答案 1 :(得分:0)
我看到一些可能导致问题的事情。首先,您有一组不需要的{ }
。你对循环的开放应该是:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
而不是:
<?php if (have_posts()){ while (have_posts()): the_post(); ?>
查看循环中的花括号?
然后正如McNab所说,只需添加“s”来修复你的div类,然后从内容提取器中删除echo
。
您还需要在endif;
之后添加endwhile;
。
所以你的完整循环应该像这样循环:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="span6">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p><?php the_excerpt(); ?></p>
</div>
<?php endwhile; endif; ?>
我认为这应该可以纠正你的问题。