高级自定义字段组值为空,但换行元素仍然可见



我正在使用Advanced Custom Fields构建一个Wordpress网站。所以现在我只想显示这些字段,如果它们"存在",例如,如果它们有内容。我做了这个条件声明:

$casemodule = get_field('case_page_instore');   
if( $casemodule ) : ?>  
<section class="block">
<h2><?php echo $casemodule['case_header'] ?></h2>
<p><?php echo $casemodule['case_subtext'] ?></p>
</section>
<?php endif; ?>

所以很好,如果字段case_headercase_subtext为空,它们将不会显示(显然(,但是或某种原因<section>-tag 始终可见,这有点奇怪,因为我按照 ACF 页面上的说明进行操作。

有人可以告诉我发生了什么吗?

更新

我尝试做var_dump($casemodule),结果是:

array(2) { ["case_header"]=> string(0) "" ["case_subtext"]=> string(0) }

但这并没有解决任何问题

仅仅因为$casemodule['case_header']$casemodule['case_subtext']不存在,并不意味着$casemodul不存在。它可以是一个包含其他键的数组,也可以只是一个空数组,它将存在!

尝试检查$casemodule['case_header']$casemodule['case_subtext']是否真的存在:

$casemodule = get_field('case_page_instore');   
if(isset($casemodule['case_header']) && isset($casemodule['case_subtext'])) : ?>  
<section class="block">
<h2><?php echo $casemodule['case_header'] ?></h2>
<p><?php echo $casemodule['case_subtext'] ?></p>
</section>
<?php endif; ?>

如果不确定某个变量,请始终使用var_dump($variable),然后再将其传递给 if 语句。

我自己解决了,解决方案是:

if($casemodule['case_header'] && $casemodule['case_subtext']) : ?>

我只是把isset去掉了,瞧! :-(

感谢礼萨之前的回答