2011-11-19 38 views
-1

我想创建一个单独的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

我会_strongly_建议重新思考这种方法。这看起来像是一个绝对的噩梦来维持。想想在六个月内回到这个文件的工作,并试图找出如何修改这个文件,这样你就不会破坏任何东西。 – sarnold

+0

它更糟糕的是它的语法不正确,并且不会像提供的那样工作,并且您正在呈现它的事实表明您需要阅读基本编程...所以我强烈建议您阅读它http ://www.programmingvideotutorials.com/php/php-loops –

+0

我知道它看起来像一场噩梦.....不是重点....我会在晚些时候清理垃圾。我只是坚持如何有条件地结束一个循环。这不是我的代码,我正在编辑某人elses代码。 – Nick

回答

3

只是做了正常状态正常while内:

while (/* something */) : 

    // same for all 

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

嗯,但我想结束,而使用if语句....不做一些内部的时间... – Nick

+0

@Nick你不能有条件地结束一段时间,这是不可能的。 – deceze

+0

不够公平....非常感谢。 – Nick