如果字段为空,如何创建不显示字段的条件?

时间:2017-06-06 10:58:55

标签: php wordpress advanced-custom-fields

我正在使用高级自定义字段(ACF)。如果字段为空,我想不显示ACF转发器字段<input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code"> 。我将字段包装在div中,如果字段为空,则使用CSS写一个display = none,但我确信有更好的方法可以做到这一点。我的逻辑似乎不起作用。

the_sub_field('feature_image_post');

2 个答案:

答案 0 :(得分:1)

if (! empty(get_sub_field('feature_image_post'))) {
    echo '<div class="post-feature" style="display:block;">';
    the_sub_field('feature_image_post'); 
    echo '</div>';
}

就是这样。在这种情况下,get_sub_field('feature_image_post')为空,它将跳过整个部分。

据我所知 - ACF中的the_表示它会显示数据,因此您在此之前不需要echo

并且请务必检查您是否已使用echo关闭;,因为在示例中您没有。

答案 1 :(得分:1)

此处不需要其他声明。如果该字段尚未设置,则您根本不显示任何内容。

我的方法是使用get_sub_field()并将结果作为条件的一部分分配给变量。

ACF中图像的默认返回值是一个值数组,所以我假设你拥有的是。

示例:

if ( $feature_image_post = get_sub_field( 'feature_image_post' ) )  {
    echo '<div class="post-feature">'; 
    printf( '<img src="%s" alt="%s" />', esc_url( $feature_image_post['url'] ), esc_attr( $feature_image_post['title'] ) );
    echo '</div>';
} 

要提出的最后一点是get_sub_field()the_sub_field()之间的差异。在原始代码中,您尝试回显the_sub_field()get_...将返回一个值,而the_...将输出该值,使echo在该上下文中成为冗余。