我正在浏览一个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; ?>
其他人之前和之后的冒号究竟做了什么?这件事有什么作用?
答案 0 :(得分:10)
该函数只有在已经声明的情况下才会执行dynamic_sidebar
。冒号是PHP的alternate syntax for control structures。它们意味着在模板/视图中使用。
在这种情况下,看起来if
有一个空体,它只用于调用dyanamic_sidebar
(如果存在),因为如果第一个调用dynamic_sidebar(1)
将不会发生布尔检查失败。
else
将在其自身和<?php endif; ?>
之间输出任何内容。在这种情况下,当函数dynamic_sidebar
不存在或dyanmic_sidebar(1)
未返回true
时会触发。
答案 1 :(得分:4)
这是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
}
?>
答案 2 :(得分:1)
Wordpress中的dynamic_sidebar函数在调用时,将显示侧边栏,其中包含传入的编号的id(在本例中,它是一个)。代码片段将打印出侧边栏(如果它存在,并且函数dynamic_sidebar已定义),否则,它将打印出您发布的代码下方的任何内容,直到侧边栏的行。< / p>