You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当两个ACF子字段均为空时隐藏WordPress父容器的实现求助

解决WordPress ACF字段容器的显示逻辑问题

没问题,我帮你调整这个显示逻辑~ 你现在的代码里,不管两个字段是否为空,.header-contact这个div都会被渲染出来,只是空字段对应的内容不显示。要实现只要任一字段有内容就显示容器,两个都空就隐藏容器,我们只需要把整个div包裹在一个判断条件里就行。

修改后的代码:

<?php
// 先获取两个字段的值,方便后续判断与复用
$header_tel = get_field('header_tel', 'option');
$header_email = get_field('header_email', 'option');

// 判断至少一个字段有内容时,才渲染整个容器
if ($header_tel || $header_email) : ?>
    <div class="header-contact">
        <?php if($header_tel): ?>
            <p>Tel No: <a href="tel:<?php echo esc_attr($header_tel); ?>"><?php echo esc_html($header_tel); ?></a></p>
        <?php endif; ?>
        <?php if($header_email): ?>
            <a href="mailto:<?php echo esc_attr($header_email); ?>"><?php echo esc_html($header_email); ?></a>
        <?php endif; ?>
    </div>
<?php endif; ?>

代码说明:

  • 提前获取两个字段的值,既避免了重复调用get_field的冗余,也让判断逻辑更直观。
  • 使用||逻辑运算符实现“任一字段有值即显示容器”的要求:只要$header_tel或$header_email其中一个不为空,就会渲染整个.header-contact容器;只有当两个都为空时,容器才会被完全隐藏。
  • 额外加上esc_attr()和esc_html()做内容转义,这是WordPress开发的安全最佳实践,能有效避免XSS风险,同时让代码更规范。

这样修改后,就能完美实现你想要的显示逻辑啦~

内容的提问来源于stack exchange,提问作者user1961395

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:17:31