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

如何在创建Elementor自定义Widget时于render()函数中获取data-id?

获取自定义Elementor Widget的data-id(实例ID)

要在Elementor自定义Widget的render()方法中获取当前Widget实例的data-id,直接调用Elementor Widget基类内置的get_id()方法即可,这个方法返回的就是每个Widget实例的唯一标识,对应前端DOM元素上的data-id属性。

修改后的render()代码:

protected function render() {
    global $wp_query;
    global $post;
    $this->print_unescaped_setting( 'custom_html' );
    $settings = $this->get_settings_for_display();

    $str = $settings['custom_php'];
    eval("$str");
    if(! empty ($settings['custom_function_php'] ) ){
        $str_php = $settings['custom_function_php'];
        // 获取当前Widget的data-id(实例ID)
        $widget_id = $this->get_id();
        // 示例:将widget ID用于文件名
        $namepage = 'phpFile-' . $widget_id . '.php';
        $this->creat_file( $namepage, $str_php);
        require_once ( __DIR__ . '/' . $namepage );
    }   
}

补充说明:

  • $this->get_id() 是Elementor核心Widget类的原生方法,无需额外定义,直接调用就能拿到当前Widget实例的唯一ID(与前端DOM上的data-id值完全一致)。
  • 如果需要前端DOM上完整的data-id格式(比如带elementor-widget-前缀),可以用 'elementor-widget-' . $this->get_id() 拼接生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:50:16