对于php的条件语句,我真的没有经验,不幸的是,高级自定义字段的文档并没有像我所知道的那样公平地涵盖这个主题。但无论如何,我要做的是显示一些标记和自定义字段,但仅当其中一个字段或两个字段都有数据时。
例如,我有一个页脚,可以显示电子邮件地址和/或网站链接。如果两个自定义字段均未填充数据,则不应显示页脚标记。如果有可用的电子邮件地址和/或网站链接,它应该显示页脚标记,当然还有字段的数据。
这就是我目前拥有的:
<footer>
<?php if( get_field(\'website\') ): ?>
<a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
<?php endif; ?>
<?php if( get_field(\'emailaddress\') ): ?>
<a href="mailto:<?php the_field(\'emailaddress\'); ?>"><?php the_field(\'emailaddress\'); ?</a>
<?php endif; ?>
</footer>
但即使两个自定义字段都不可用,此代码也会显示页脚标记。如何使页脚标记仅在两个自定义字段中的一个都有值时显示?
如果试图使用| |语句执行此操作,但返回意外的T\\u BOOLEAN\\u或错误
<?php if( get_field(\'website\') ) || ( get_field(\'emailaddress\') ): ?>
// do this
<?php endif; >
如果有人知道这是否可行,如何做到这一点,或者能为我指出正确的方向,我将不胜感激。
最合适的回答,由SO网友:Josh Mountain 整理而成
我相信您的第二个想法是正确的,但是您的条件语句有一些语法错误。在PHP中,所有逻辑都应该封装在一组( )
对于您的条件。尝试以下操作:
<?php
if ( get_field(\'website\') || get_field(\'emailaddress\') ) {
?>
<footer>
<?php
if ( get_field(\'website\') ) {
?>
<a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
<?php
}
if ( get_field(\'emailaddress\') ) {
?>
<a href="mailto:<?php the_field( \'emailaddress\' ); ?>"><?php the_field( \'emailaddress\' ); ?></a>
<?php
}
?>
</footer>
<?php
}