如何通过ACF在WordPress中切换Divi模块的可见性?
通过ACF切换WordPress中Divi模块可见性的方法
当然可以,下面是几种实用的实现方式:
方式1:Divi内置条件逻辑+ACF字段(最简便)
- 先在ACF里创建一个字段,比如开关型字段
show_target_module,设置返回布尔值。 - 编辑Divi模块时,打开「高级」选项卡,找到「条件逻辑」。
- 添加规则:选择「ACF字段」,匹配你刚创建的字段,设置为「等于」「是」(根据字段类型调整)。这样当ACF字段开启时模块显示,关闭则隐藏。
方式2:代码控制(适配复杂场景)
如果内置逻辑满足不了需求,用过滤器修改模块状态:
add_filter('et_pb_module_shortcode_attributes', 'acf_toggle_divi_module', 10, 3); function acf_toggle_divi_module($attrs, $module_slug, $shortcode) { // 替换成目标模块的slug(比如et_pb_button)和你的ACF字段名 if ($module_slug === 'et_pb_button' && get_field('show_button_module') !== true) { $attrs['disabled'] = 'on'; // 禁用模块使其不渲染 } return $attrs; }
- 把这段代码加到主题的
functions.php或者自定义插件里。 - 注意替换对应的模块slug和ACF字段名。
方式3:ACF动态内容+CSS控制
- 在ACF创建下拉字段,选项设为「show」和「hide」。
- 编辑Divi模块,在「高级」→「CSS ID & Classes」的「CSS Class」里,插入动态内容:
[acf field="module_display"](替换为你的字段名)。 - 到主题自定义CSS里加这段样式:
.hide { display: none !important; }
当ACF字段选「hide」时,模块就会被CSS隐藏。
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

