在不同的地方有条件地关闭一段时间

时间:2011-11-19 10:14:51

标签: php wordpress

我正在尝试创建一个单独的php文件,我可以用它来显示索引的内容或wordpress中的页面。这个问题不是wordpress特定的。

我有一个'while'需要在两个不同的地方关闭,具体取决于索引或页面是否正在显示。我试图用'if'

关闭'while'
if (is_home()) { endwhile; }
// otherphp
if (is_page()) { endwhile; }

这不行。完整代码如下:

<section id="main">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <?php if (is_home()) : ?> <article <?php post_class() ?> id="post-<?php the_ID(); ?>"> <?php elseif (is_page()) : ?> <article class="post" id="post-<?php the_ID(); ?>"> <?php else : NULL; endif; ?>
    <div class="entry">
      <?php the_content(); ?>
    </div>
  </article>
  <?php if (is_home()) { endwhile; } ?> <!-- ENDWHILE MUST BE HERE ON INDEX PAGE -->
  <?php if (is_home()) : get_template_part('nav','default'); elseif (is_page()) : NULL; else : NULL; endif; ?>
  <?php if (is_page()) { endwhile; } ?> <!-- ENDWHILE MUST BE HERE ON ALL OTHER PAGES -->
  <?php endif; ?>
</section>

我意识到这段代码效率低下而且杂乱无章,但目前我并不专注于效率。我只是想让它发挥作用。

如何有条件地结束'while'?

1 个答案:

答案 0 :(得分:3)

在正常while

内做正常情况
while (/* something */) :

    // same for all

    if (/* is home */) {
        // do something only for home
    }
endwhile;