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

如何在Elementor钩子中获取列的自定义CSS ID?

如何获取Elementor列的自定义CSS ID并添加Iframe?

问题场景

在Elementor编辑器中给特定列设置了自定义CSS ID「custom_iframe」,希望通过elementor/frontend/column/after_render钩子在该列下方插入Iframe,但调用$element->get_ID()返回的是Elementor自动生成的内部ID,无法匹配自定义ID。

问题原因

$element->get_ID()方法返回的是Elementor为元素生成的唯一内部标识,并非你在「编辑列>高级>布局>CSS ID」中设置的自定义ID。自定义CSS ID存储在元素的设置参数里,需要从设置数组中读取。

解决方案

通过$element->get_settings()方法获取元素的设置数组,其中自定义CSS ID对应的键为_css_id。修改代码如下:

function add_custom_script_below_custom_column($element)
{
    if (is_page('careers')) {
        // 获取自定义CSS ID
        $custom_id = $element->get_settings('_css_id');
        // 检查自定义ID是否存在且匹配目标值
        if (!empty($custom_id) && $custom_id == 'custom_iframe') {
            echo '<iframe id="grnhse_iframe" width="100%" frameborder="0" scrolling="auto" allow="geolocation" onload="window.scrollTo(0,0)" title="Greenhouse Job Board" src="https://boards.greenhouse.io/embed/job_app?for=rfcareers&token=5746638003" height="100vh"></iframe>';
        }
    }
}
add_action('elementor/frontend/column/after_render', 'add_custom_script_below_custom_column');

代码说明

  1. 使用$element->get_settings('_css_id')直接读取用户设置的自定义CSS ID
  2. 增加!empty($custom_id)判断,避免因未设置自定义ID导致的无效判断
  3. 修正了原代码中HTML实体转义的问题,钩子中输出HTML无需额外转义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:34:58