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

如何通过functions.php将Elementor CTA组件描述字段改为WYSIWYG字段?

问题分析与修复方案

你的代码没生效的核心原因是找错了控件层级:CTA组件的description是独立控件,并非嵌套在call-to-action控件组里,原代码里的get_control_from_stack调用会返回错误,导致后续逻辑无法执行。

修正后的代码

/*
 * 将Elementor CTA组件的描述字段改为WYSIWYG编辑器
 */
add_action( 'elementor/element/call-to-action/section_content/before_section_end', function( $widget ) {
    // 直接更新description控件的类型为WYSIWYG
    $widget->update_control(
        'description',
        [
            'type' => \Elementor\Controls_Manager::WYSIWYG,
        ]
    );
}, 10, 1 );

关键调整说明

  1. 移除无效的控件栈查找:不需要通过get_control_from_stack去查找不存在的call-to-action控件组,直接针对description控件进行修改即可。
  2. 简化钩子参数:原钩子的$args参数未被使用,所以把回调函数的参数数量从2改为1,避免不必要的参数传递。

额外排查点(如果修正后仍无效)

  • 调整钩子优先级:如果Elementor Pro加载CTA控件的优先级更高,可以把钩子的第三个参数(优先级)从10改为20,确保你的代码在控件初始化后执行。
  • 清除Elementor缓存:Elementor会缓存控件结构,修改代码后前往Elementor设置页面清除缓存,再刷新编辑器。
  • 确认代码位置:确保代码放在子主题的functions.php中,避免父主题更新覆盖代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:42:33