为什么WordPress在模板中使用`endWhile;`?

时间:2017-01-05 作者:prosti

我们经常在WordPress模板中看到这一点:

while ( have_posts() ) : the_post();
...
endwhile;
你知道为什么不使用大括号或“花括号”{}来while 环收益是什么?

2 个回复
SO网友:Tunji

根据wordpress手册php coding standards, 大括号应用于所有块,其样式如下所示:

if ( condition ) {
    action1();
    action2();
} elseif ( condition2 && condition3 ) {
    action3();
    action4();
} else {
    defaultaction();
}
大括号的使用意味着single-statement inline control structures 禁止使用,因此最好使用alternative syntax for control structures (例如。if/endif, while/endwhile) 在这种情况下,尤其是在HTML中嵌入PHP代码的模板文件中:

<?php if ( have_posts() ) : ?>
    <div class="hfeed">
        <?php while ( have_posts() ) : the_post(); ?>
            <article id="post-<?php the_ID() ?>" class="<?php post_class() ?>">
                <!-- ... -->
            </article>
        <?php endwhile; ?>
    </div>
<?php endif; ?>

SO网友:iguanarama

这只是另一种写作方式,主要是一种文体选择。我使用带花括号的while循环,发现while:endwhile很难阅读。

编辑:以前询问过here. tl;博士:同样的答案。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请