我有一个按钮的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; ?>
任何人都有建议吗?
干杯:)
答案 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' ) );