if语句使用php并在wordpress中提升自定义字段 - 隐藏空字段

时间:2017-06-05 17:46:31

标签: php wordpress advanced-custom-fields

我有一个按钮的if和if语句。

如果两个高级自定义字段都存在,我希望它显示按钮,如果不是,我希望它隐藏,但我在这里挣扎。

我看过这个页面:

https://www.advancedcustomfields.com/resources/hiding-empty-fields/

这是我的代码:

<?php if( get_field('button_link') && get_field('button_text') ): ?>
    <a href="<?php the_field('button_link');  ?>" class="btn third-btn mx-auto">
    <?php the_field('button_text');?> <i class="fa fa-arrow-circle-right" aria-hidden="true"></i>
  </a>
<?php endif; ?>

任何人都有建议吗?

干杯:)

1 个答案:

答案 0 :(得分:1)

我不是ACF专家,但在这里查看get_field()函数描述https://www.advancedcustomfields.com/resources/get_field/看起来该函数永远不会返回描述中提到的布尔值,我引用:

  

返回指定字段的值

由于它没有返回布尔值,因此无法保证get_field('something')&amp;&amp; get_field('something2')将是正确的布尔值。有些值if语句解释为boolean true或false。例如,null和0被解释为false,但-1被解释为true。我建议做一个

var_dump( get_field('button_link') ) 

探索输出。此外,根据{检查是否存在值'下的https://www.advancedcustomfields.com/resources/get_field/,您可以检查是否存在一个值,因此这可能有效:

<?php if ( get_field( 'button_link' ) ) : ?>
    <?php if ( get_field( 'button_text' ) ) : ?>
        <a href="<?php the_field( 'button_link' ) ?>" class="btn third-btn mx-auto">
            <?php the_field( 'button_text' ) ?> <i class="fa fa-arrow-circle-right" aria-hidden="true"></i>
        </a>
    <?php endif ?>
<?php endif ?>

它就像一个嵌套的AND而不使用&amp;&amp;运营商。如果这不起作用,我们需要更多关于你得到的信息:

var_dump( get_field( 'button_link' ) );
var_dump( get_field( 'button_text' ) );