
本文介绍如何在 elementor 插件开发中,为 media 控件指定插件目录内的自定义默认图片(如 assets/img/placeholder.png),替代系统默认占位图,确保组件初始化时展示品牌一致的预设图像。
本文介绍如何在 elementor 插件开发中,为 media 控件指定插件目录内的自定义默认图片(如 assets/img/placeholder.png),替代系统默认占位图,确保组件初始化时展示品牌一致的预设图像。
在开发 Elementor 自定义小工具(Widget)时,若使用 Controls_Manager::MEDIA 类型控件,其默认值通常采用 \Elementor\Utils::get_placeholder_image_src() 提供的通用占位图。但为提升专业性与品牌统一性,建议使用插件自身资源目录中的图片作为默认图像——例如 assets/img/placeholder.png。
实现方式非常简洁:只需将 plugin_dir_url(__DIR__) . 'assets/img/placeholder.png' 作为 'url' 键的值传入 default 数组即可。plugin_dir_url(__DIR__) 动态生成当前插件根目录的可访问 URL(自动处理路径分隔符与 Web 可达性),确保图片路径正确且可被浏览器加载。
✅ 正确示例代码如下:
$repeater->add_control(
'ferdaussk_team_profile_image',
[
'label' => esc_html__( 'Choose Image', 'ferdaussk' ),
'type' => Controls_Manager::MEDIA,
'default' => [
'url' => plugin_dir_url( __DIR__ ) . 'assets/img/placeholder.png',
],
]
);
⚠️ 注意事项:
- 确保 assets/img/placeholder.png 文件真实存在于插件目录结构中,且具有可读权限;
- 不要使用 plugin_dir_path()(返回服务器绝对路径),它无法被前端直接访问;
- 若图片需支持多语言或主题适配,建议配合 esc_url() 进一步转义:
'url' => esc_url( plugin_dir_url( __DIR__ ) . 'assets/img/placeholder.png' ); - 如需同时设置 id(用于媒体库关联),可补充 'id' => 0(表示非媒体库上传图),但非必需;仅 url 即可满足静态默认图需求。
该方案轻量、可靠,无需额外钩子或 JS 干预,是 Elementor 插件开发中设置自定义默认媒体资源的标准实践。











