WordPress中PHP条件判断隐藏内容时,容器标签不显示问题
问题分析与解决方案
你的问题核心是:当自定义字段有内容时,外层的.lgst-box容器及内部标题标签未被正确渲染,仅显示字段的纯文本内容。
可能的原因
最常见的问题是rh_woo_code_zone()函数的行为是直接输出内容,而非返回内容。当你在if条件中调用rh_woo_code_zone('content')时,函数会立即输出字段内容,之后才执行容器标签的输出,这会导致浏览器解析顺序混乱,容器标签被后置或忽略,最终只显示先输出的纯文本。
解决方案
方案1:使用函数的返回模式(优先推荐)
查看rh_woo_code_zone函数的文档或源码,确认是否支持返回内容而非直接输出。通常这类函数会有参数控制输出方式,示例代码如下:
<?php // 先获取内容而不直接输出 $faq_content = rh_woo_code_zone('content', false); if ($faq_content) : ?> <div class="lgst-box" id="veelgestelde-vragen"> <div class="box-title mb15"> <h2 class="text-upper">Veelgestelde Vragen</h2> </div> <div class="box-content"> <?php echo $faq_content; ?> </div> </div> <?php endif; ?>
方案2:直接检查自定义字段值
如果rh_woo_code_zone没有返回模式,直接通过WordPress原生函数检查字段是否存在并获取内容:
<?php // 替换为自定义字段的实际键名 $faq_content = get_post_meta(get_the_ID(), '对应的字段键名', true); if ($faq_content) : ?> <div class="lgst-box" id="veelgestelde-vragen"> <div class="box-title mb15"> <h2 class="text-upper">Veelgestelde Vragen</h2> </div> <div class="box-content"> <?php echo do_shortcode($faq_content); // 若字段包含短代码需添加此解析 ?> </div> </div> <?php endif; ?>
额外排查点
- 确认主题或插件未对输出内容做HTML转义过滤(如
esc_html),导致标签被转义为纯文本。 - 打开浏览器开发者工具的元素面板,检查容器标签是否实际存在但被CSS隐藏,或位置异常。
内容的提问来源于stack exchange,提问作者Twanofzo
相关产品推荐
相关产品推荐

