我在浏览一个WordPress站点时,发现了下面这行
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(1) ) : else : ?>
<li id="recent-posts">
<ul>
<?php get_archives('postbypost', 5); ?>
<ul>
</li>
<?php endif; ?>冒号之前和之后到底做了什么?这东西是怎么工作的?
发布于 2010-03-11 23:10:50
该函数只有在已经声明的情况下才会执行dynamic_sidebar。冒号是PHP的alternate syntax for control structures。它们应该在模板/视图中使用。
在本例中,if看起来有一个空的主体,并且它只用于在dyanamic_sidebar存在的情况下调用它,因为如果第一次布尔检查失败,则不会调用dynamic_sidebar(1)。
else将输出自身和<?php endif; ?>之间的任何内容。在这种情况下,当函数dynamic_sidebar不存在或dyanmic_sidebar(1)不返回true时,它将触发。
发布于 2010-03-11 23:14:42
它是一个alternative Syntax for control structure。
这意味着:
<?php
if (function_exists('dynamic_sidebar') && dynamic_sidebar(1)) {
} else {
?>
<li id="recent-posts">
<ul>
<?php get_archives('postbypost', 5); ?>
<ul>
</li>
<?php
}
?>发布于 2010-03-11 23:20:58
调用Wordpress中的dynamic_sidebar函数时,它将显示带有传入数字id的侧边栏(在本例中,它是1)。这段代码将打印出该侧边栏(如果存在,且定义了函数dynamic_sidebar ),否则,它将打印出您所发布的代码下面的任何内容,直到边栏所在位置的行。
https://stackoverflow.com/questions/2426036
复制相似问题