Закрытие некоторое время в разных местах - PullRequest
0 голосов
/ 19 ноября 2011

Я пытаюсь создать один php-файл, который я могу использовать для отображения содержимого индекса или страницы в WordPress.Этот вопрос не относится к WordPress, хотя.

У меня есть «время», которое необходимо закрыть в двух разных местах в зависимости от того, отображается ли индекс или страница.Я пытаюсь закрыть 'while' с помощью 'if'

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 Ответ

3 голосов
/ 19 ноября 2011

Просто выполните нормальное состояние внутри нормального while:

while (/* something */) :

    // same for all

    if (/* is home */) {
        // do something only for home
    }
endwhile;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...