我无法理解这段代码。我得到了' wordpress-loop'的基础知识。但我不明白这种语法是什么。它几乎看起来像一个三元运算符。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title() ;?></h1>
<?php the_content(); ?>
<?php endwhile; else: ?>
<p>Sorry, this page does not exist</p>
<?php endif; ?>
特别是这一行..
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
这是说好的如果有帖子,我们有帖子,显示帖子?但是:&#39; s表示什么呢?
答案 0 :(得分:4)
它是PHP alternative syntax的控制结构:
PHP为其某些控制结构提供了另一种语法; 即,if,while,for,foreach和switch。在每种情况下,基本的 替代语法的形式是将左大括号更改为冒号 (:)和endif的结束括号;,endwhile;,endfor;,endforeach;, 或者endwitch;分别。
示例:
if (condition) :
endif;
与:
相同if (condition) {
}
具体来说,WordPress说:如果我们有帖子,请遍历每个帖子,然后获得帖子。
这是一个明确的缩进版本:
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<h1><?php the_title() ;?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else: ?>
<p>Sorry, this page does not exist</p>
<?php endif; ?>
答案 1 :(得分:0)
http://php.net/manual/en/control-structures.alternative-syntax.php
PHP为其某些控制结构提供了另一种语法;即,if,while,for,foreach和switch。在每种情况下,替代语法的基本形式是将左大括号更改为冒号(:),并将结束大括号分别更改为endif;,endwhile;,endfor;,endforeach;或endswitch;。