为什么我的If声明会破坏WordPress?

时间:2012-08-01 20:04:14

标签: php wordpress if-statement wordpress-theming

我是一位经验丰富的网络开发人员,所以我很尴尬地问这个,但为什么我的if语句会兑现WordPress?

<!-- THE BLOCK FOR THE HEADER IN THE CMS !-->
<span class="PostHeader"><p>
<?php

    if(empty(get_the_block("Header"))){
        echo "Employment"; //Empty only on the employment screen
    } else {
        the_block("Header");
    }

?>
</p>
<!-- END OF THE BLOCK -->

这是在Wordpress的模板中,如果我注释掉控件结构,它会正常加载,但只要我尝试让它在模板中运行,页面就会停止加载。

为什么要这样做?

- 编辑 -

很抱歉忘了提及“多个内容块”插件已启用。

3 个答案:

答案 0 :(得分:2)

empty()是一个不是函数的结构,它只接受变量,你应该使用它:

<!-- THE BLOCK FOR THE HEADER IN THE CMS !-->
<span class="PostHeader"><p>
<?php

    $block = get_the_block("Header");

    if(empty($block)){
        echo "Employment"; //Empty only on the employment screen
    } else {
        the_block("Header");
    }

?>
</p>
<!-- END OF THE BLOCK -->

有关更多信息,请参阅PHP Empty

答案 1 :(得分:0)

根据WordPress Codex,没有任何功能get_the_block()

除非你已经定义了它或者有一个定义了它的插件,否则你会收到一个致命的错误。您服务器的错误日志可能会证实这一点。

答案 2 :(得分:0)

您必须下载此插件:http://downloads.wordpress.org/plugin/multiple-content-blocks.zip并安装它。

您尝试使用的功能不在WordPress Codex中,也找不到。这就是为什么你得到一个空白页面,也就是死亡的白色屏幕(也因为php reporting_error设置为false)。你可以尝试把这一行

error_reporting(-1);

在你的if else声明面前。

材料:

  

http://plugins.trendwerk.nl/documentation/multiple-content-blocks/