我刚刚开始使用自定义字段,并希望使用它来显示一个带有(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”时收到语法错误。任何指点都将不胜感激!
最合适的回答,由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 } ?>