我正在使用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_header
和case_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
去掉了,瞧! :-(
感谢礼萨之前的回答