能否为WPBakery(Visual Composer)开发自定义Row类根容器元素?
自定义WPBakery全屏根级Header元素解决方案
问题背景
我已经为WPBakery编辑器开发过若干自定义元素,现在需要创建一个类似vc_row的Header元素,满足以下需求:
- 后台添加时不会自动嵌套在行内
- 默认具备全屏拉伸特性,无需客户手动设置行的拉伸属性
查阅了大量教程及WPBakery官方开发手册,仍未找到可行方案。
临时解决方案(修改核心文件)
可通过修改WPBakery核心JS文件实现:
- 找到插件目录下的
assets > js > dist > backend.min.js,先对文件进行反混淆处理 - 定位到第1408行,修改两处判断逻辑:
- 将
"vc_section" === tag替换为("vc_section" === tag || "vc_carousel_father" === tag) - 将
"vc_section" === presetType替换为("vc_section" === presetType || "vc_carousel_father" === presetType)
- 将
- 在自定义元素的
vc_map函数中添加以下参数:
'as_child' => array( 'only' => '', // 仅允许放置在根级 ), 'class' => 'vc_main-sortable-element',
注意:此方法依赖修改WPBakery核心文件,插件更新后修改会丢失,甚至可能导致插件功能异常。
优化方向(无核心文件修改)
正在探索无需修改核心文件的方案,目前思路如下:
- 给自定义元素添加"is root"布尔型参数
- 利用WPBakery的
admin_enqueue_js钩子注入自定义JS逻辑,实现根级元素判断与全屏拉伸的默认配置
内容的提问来源于stack exchange,提问作者vivalavendredi
相关产品推荐
相关产品推荐

