If-else语句不适用于多个PHP代码段

时间:2014-07-14 02:59:52

标签: php wordpress

我正在尝试学习如何编写WordPress主题代码并遇到类似下面发布的代码。它应该,如果第一次测试失败,转到else语句,但它没有,它只是死了。这是怎么回事?

<?php if(ishome() || is_front_page()) : ?>
                <h1 id="site-title">
                    <a href="<?php echo home_url(); ?>" title="<?php
                        bloginfo('name'); ?>">
                            <?php bloginfo('name'); ?>
                    </a>
                </h1>
                <h2 id="site-description">
                    <?php bloginfo('description'); ?>
                </h2>
            <?php else : ?>
                <div id="site-title")
                    <a href="<?php echo homeurl(); ?>" title="<?php
                        bloginfo('name'); ?>" >
                        <?php bloginfo('name'); ?>
                    </a>
                </div>
                <div id="site-description">
                    <?php bloginfo('description'); ?>
                </div>
            <?php endif ?>

4 个答案:

答案 0 :(得分:0)

我只能看到失踪的';'在最后一条指令的末尾

<?php endif; ?>

另外,尝试检查它是否实际上缺少第一个IF语句,因为ishome() || is_front_page()都是假的而不是因为其他原因。

尝试使用if(true):进行检查,看看它是否进入。

HIH

答案 1 :(得分:0)

我的猜测是你的脚本正在“死”,因为你正在调用ishome(),这不是一个wordpress函数(它是is_home()),如果你关闭错误报告可能会导致空白的白色屏幕没有有用的错误消息。我建议您为开发/本地服务器报告错误报告,然后关闭实时/生产环境。

更改您的代码以使用correct function name; is_home()

<?php if(is_home() || is_front_page()) : ?>
    <p>Hello world!</p>
<?php else: ?>
    <p>Not home page or front page.</p>
<?php endif; ?>

答案 2 :(得分:0)

  1. 用is_home()
  2. 替换ishome()
  3. 将homeurl()替换为home_url()
  4. 在endif中加分号;最后

答案 3 :(得分:-5)

您缺少包含IF和Else语句的括号({})。当你有PHP穿插html时,你需要保持干净。