If-else语句不能跨多个PHP代码段工作


If-else statement doesn't work across multiple PHP code snippets

我正试图学习如何编写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 ?>
  1. 将ishhome()替换为is_home()
  2. 将homeurl()替换为home_url()
  3. 添加分号以结束;

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

<?php endif; ?>

另外,试着检查是否因为ishome() || is_front_page()都为假而不是因为其他原因而实际上遗漏了第一个if语句。

试着检查if(true):,看看它是否进入。

因HIH

公司破产引发

我的猜测是,你的脚本是"死亡",因为你正在调用ishome(),这不是一个wordpress功能(它是is_home()),如果你有错误报告关闭可能会导致一个空白的屏幕没有一个有用的错误消息。我建议你在开发/本地服务器上把错误报告调高,在现场/生产环境下调低。

修改代码以使用正确的函数名;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; ?>

您缺少包含IF和Else语句的括号({})。当php与html穿插在一起时,你需要保持它的整洁。