高级自定义字段-检查多个空字段

时间:2013-02-12 作者:scribbles

我正在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 而是值!

如果有人能告诉我这件事的正确方向,我将不胜感激。我还是个新手,但我努力学习,所以请温柔点!

3 个回复
SO网友:RRikesh

请注意get_field 退货falsenot 找不到值时为空字符串。文档中没有写,但您可以尝试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) 

SO网友:Mike Madern

你的if语句不能按你想要的方式工作。

Change this part of the code

if(get_field(\'linked_in\') && get_field(\'twitter\') && get_field(\'facebook\') != "")

Into

if(empty(get_field(\'linked_in\')) && empty(get_field(\'twitter\')) && empty(get_field(\'facebook\')))
这样,将检查所有三个字段是否为空。

SO网友:Dave

由于这一点在谷歌的搜索结果中仍然很高,我想我应该添加一个对我有帮助的替代答案。不确定ACF在回答此问题后是否更新了编码,但只有以下几点对我有效:

<?php
     if(
         ( !get_field(\'linked_in\') ) && #no linked_in value
         ( !get_field(\'twitter\') ) && #no twitter value
         ( !get_field(\'facebook\') ) &&  #no facebook value
     ): 
?>
   <p>There are no Social Media links to display </p>
<?php endif; ?>

结束

相关推荐

高级自定义字段-检查多个空字段 - 小码农CODE - 行之有效找到问题解决它

高级自定义字段-检查多个空字段

时间:2013-02-12 作者:scribbles

我正在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 而是值!

如果有人能告诉我这件事的正确方向,我将不胜感激。我还是个新手,但我努力学习,所以请温柔点!

3 个回复
SO网友:RRikesh

请注意get_field 退货falsenot 找不到值时为空字符串。文档中没有写,但您可以尝试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) 

SO网友:Mike Madern

你的if语句不能按你想要的方式工作。

Change this part of the code

if(get_field(\'linked_in\') && get_field(\'twitter\') && get_field(\'facebook\') != "")

Into

if(empty(get_field(\'linked_in\')) && empty(get_field(\'twitter\')) && empty(get_field(\'facebook\')))
这样,将检查所有三个字段是否为空。

SO网友:Dave

由于这一点在谷歌的搜索结果中仍然很高,我想我应该添加一个对我有帮助的替代答案。不确定ACF在回答此问题后是否更新了编码,但只有以下几点对我有效:

<?php
     if(
         ( !get_field(\'linked_in\') ) && #no linked_in value
         ( !get_field(\'twitter\') ) && #no twitter value
         ( !get_field(\'facebook\') ) &&  #no facebook value
     ): 
?>
   <p>There are no Social Media links to display </p>
<?php endif; ?>

相关推荐