PHP If、Else和自定义字段-语法错误

时间:2015-08-30 作者:publicinformation

我刚刚开始使用自定义字段,并希望使用它来显示一个带有(1)作者照片(2)作者姓名(3)作者简历的作者框。

我在循环单中使用此代码。php,它运行良好:

<?php if ( get_post_meta($post->ID, \'author-photo\', \'author-name\', \'author-bio\', true) ) : ?>
<div class="authorbox">
    <div class="authorphoto">
    <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>" />
    </div>
        <div class="authorbox-content">
            <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
            <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
        </div>
</div>
<?php endif; ?>
基本上,如果所有3个自定义字段值都存在,则上面显示的是作者照片、姓名和个人简历。

接下来,如果照片值不存在,我尝试使其仅显示作者姓名和个人简历。因此,我在上述代码的正下方添加了一些代码,生成的整个代码如下所示:

<?php if ( get_post_meta($post->ID, \'author-photo\', \'author-name\', \'author-bio\', true) ) : ?>
<div class="authorbox">
    <div class="authorphoto">
    <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>" />
    </div>
        <div class="authorbox-content">
            <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
            <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
        </div>
</div>
<?php endif; ?>


<?php if ( get_post_meta($post->ID, \'author-name\', \'author-bio\', true) ) : ?>
<div class="authorbox">
        <div class="authorbox-content-nophoto">
            <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
            <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
        </div>
</div>
<?php endif; ?>
现在,如果只存在作者名称和bio值,那么这就可以了。然而,如果所有3个值都存在,即照片、姓名和个人简历,则会出现问题。。。将显示2个作者框(一个有照片,一个没有照片)。

我如何解决这个问题?(我一次只需要显示一个作者框,无论有照片还是没有照片)。

提前感谢!

PS:我尝试过添加“else”,但不确定它的确切编码方式,我在尝试在代码之间添加“else”时收到语法错误。任何指点都将不胜感激!

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

有几种方法可以做到这一点。尝试:

<?php if ( get_post_meta($post->ID, \'author-photo\', \'author-name\', \'author-bio\', true) ) { ?>

    <div class="authorbox">
        <div class="authorphoto">
            <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>"     />
        </div>
        <div class="authorbox-content">
            <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
            <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
        </div>
    </div>

<?php } ?>

<?php else { ?>

    <?php if ( get_post_meta($post->ID, \'author-name\', \'author-bio\', true) ) { ?>
        <div class="authorbox">
            <div class="authorbox-content-nophoto">
                <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3>
                <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p>
            </div>
        </div>
    <?php } ?>

<?php } ?>