我正在Wordpress中构建一个目录,并使用客户端的高级自定义字段来填充目录条目。其中一个部分是社交媒体图标。
使用以下代码,我可以检查三个字段(twitter/facebook/linked in)中是否有任何字段为空,如果为空,则不显示图标:
<li><?php if(get_field(\'twitter\') != ""): ?><a href="<?php the_field(\'twitter\'); ?>" class="twitter">Twitter<span></span></a></li>
<?php else: ?><?php endif; ?>
<li><?php if(get_field(\'facebook\') != ""): ?><a href="<?php the_field(\'facebook\'); ?>" class="facebook">Facebook<span></span></a></li>
<?php else: ?><?php endif; ?>
<li><?php if(get_field(\'linked_in\') != ""): ?><a href="<?php the_field(\'linked_in\'); ?>" class="linked">Linked In<span></span></a></li>
<?php else: ?><?php endif; ?>
我需要帮助如何检查所有3个字段是否都为空以显示其他文本。(例如,没有可显示的社交图标)。
我目前拥有:
<?php if(get_field(\'linked_in\') && get_field(\'twitter\') && get_field(\'facebook\') != ""): ?>
<span class="small">There are no Social Media links to display</span><?php endif; ?>
然而,当所有3个字段都为空时,使用此代码不会显示任何内容-但会显示文本“没有社交…”当所有3个字段
have 而是值!
如果有人能告诉我这件事的正确方向,我将不胜感激。我还是个新手,但我努力学习,所以请温柔点!
SO网友:RRikesh
请注意get_field
退货false
和not 找不到值时为空字符串。文档中没有写,但您可以尝试var_dump
在空的get_field
要确认的项目。
所以你应该检查一下false
. 为了简单起见,我将每个条件分解为各自的一行:
<?php
if(
( false === get_field(\'linked_in\') ) && #no linked_in value
( false === get_field(\'twitter\') ) && #no twitter value
( false === get_field(\'facebook\') ) #no facebook value
):
?>
<span class="small">There are no Social Media links to display</span>
<?php endif; ?>
返回值测试
get_field
在不存在的项目上:
var_dump( get_field(\'dummy_string\',232) );
// results: bool(false)