如何在创建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
相关产品推荐
相关产品推荐

