我的网站上的这个php if else代码无效

时间:2016-02-02 10:42:44

标签: php

<?php if (get_the_author_meta('description')) {  ?>
    <?php
    $author_ID = get_the_author_meta('ID');
    $username = get_the_author_meta('display_name', $author_ID); ?>

    <div class="mm-author-box">
        <figure class="mm-author-box-avatar">
            <?php echo get_avatar($author_ID, 70); ?>
        </figure>
        <?php if ($author_ID === 4) { ?>
            <div class="mm-author-name">
                <a href="<?php echo "http://google.com" ?>"> <?php echo $username; ?> </a>
            </div>
            <div class="mm-author-bio">
                <?php echo get_the_author_meta('description'); ?>
            </div>
    </div>
    <?php } ?>
    <?php else { ?>
        <?php if ($author_ID === 9) { ?>
            <div class="mm-author-name">
                <a href="<?php echo "http://yahoo.com" ?>"> <?php echo $username; ?> </a>
            </div>
            <div class="mm-author-bio">
                <?php echo get_the_author_meta('description'); ?>
            </div>
        </div>
        <?php } ?>
<?php } ?>

这是一个显示作者姓名和超链接的代码。 如果作者有描述,则从第一个if语句进入内部 第二个if语句:如果作者ID是4,那么如果不是则执行下面的代码 否则,else语句中有一个额外的div,用于<div class="mm-author-box">,它在if语句之外。 问题是,当我把这个代码打破页面..只有网站的标题加载和它下面的内容不会,因为我已将此代码放在php文件中,这是页面内容的模板。 我认为有一些语法问题因为我使用了代码而没有其他语句而且它有效。

3 个答案:

答案 0 :(得分:1)

你最后错过了一个大括号。添加以下行作为最后一行并尝试:

<?php } ?>

答案 1 :(得分:0)

我不知道模板引擎有多严格,但这可能是问题;

System.webserver

<system.webServer>
<modules>
    <remove name="WebDAVModule" />
</modules>
<handlers>
    <remove name="WebDAV" />
</handlers>
</system.webServer>

你正在关闭div中div之外的div。因此,请将<div class="mm-author-bio"> <?php echo get_the_author_meta('description'); ?> </div> </div> <?php } ?> 放在</div>下方,看看是否有帮助

<?php } ?>

正如AnkiiG指出的那样,你错过了一个结束标记,我在格式化答案的时候不知道修复了

答案 2 :(得分:0)

您的if else结构就像这样,

<?php if (get_the_author_meta('description')) { ?>

    <?php if ($author_ID === 4) { ?>

<?php } ?>
<?php else { ?>
    <?php if ($mh_author_ID === 9) { ?>

    <?php } ?>

您没有关闭第一个if声明