如何在vc_custom_heading自定义标题中渲染自有短代码
如何在WPBakery Custom Heading(自定义标题)模块内渲染自有短代码
WPBakery自带的shortcode mapping(短代码映射)功能作用是把自定义短代码注册成独立的编辑器模块,本来就不支持给现有模块加短代码解析能力,满足不了嵌入短代码到标题里的需求,直接用下面两种方案就能实现:

方案一:挂官方钩子实现,无侵入不影响升级
把下面的代码加到当前主题/子主题的functions.php文件里就行,不需要改插件文件,后续升级WPBakery也不会失效:// 开启Custom Heading模块的短代码解析能力 add_filter('shortcode_atts_vc_custom_heading', function($out) { if (!empty($out['text'])) { $out['text'] = do_shortcode($out['text']); } return $out; });加完之后直接在Custom Heading的文本输入框里写你自己的短代码,前台就能正常渲染。
方案二:覆写模块模板,兼容性拉满
如果你的WPBakery版本比较老,上面的钩子不生效,直接覆写模板就行,步骤很简单:- 找到WPBakery插件目录下的
vc_templates/vc_custom_heading.php文件 - 在你当前用的主题/子主题根目录新建名为
vc_templates的文件夹,把刚才找到的文件复制进去 - 打开复制到主题里的这个文件,找到输出标题的代码(一般是
echo $title;这类输出标题变量的语句),改成echo do_shortcode($title);保存就完成了
这个方法不存在钩子冲突问题,所有版本的WPBakery都能用。
- 找到WPBakery插件目录下的
补充:上面两个方案默认只在前台生效,如果需要在WPBakery后台的编辑器预览界面也看到短代码的渲染效果,只需要给编辑器预览的接口也挂上同样的
do_shortcode处理逻辑即可,只做前台展示的话不需要额外配置。
内容的提问来源于stack exchange,提问作者comalex3
相关产品推荐
相关产品推荐

