我的循环错了 - WordPress

时间:2012-12-14 18:34:17

标签: php wordpress loops wordpress-theming

上次我查了一下我知道如何写一个循环来显示我的所有帖子.....我怎么写这个:

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以确保我做的事情是正确的,据我所知。

2 个答案:

答案 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; ?>

我认为这应该可以纠正你的问题。