Custom Elementor widgets, each in its own folder under widgets/.
extend-elements-for-elementor/
├── extend-elements.php # Main plugin file (bootstrap)
├── includes/
│ ├── loader.php # Loads widget manager
│ └── widget-manager.php # Registers assets + scans widgets/*/widget.php
├── widgets/
│ └── {widget-slug}/
│ ├── widget.php # Widget class (extends Elementor\Widget_Base)
│ ├── style.css # Optional; handle eefe-widget-{widget-slug}
│ └── script.js # Optional; same handle as style
├── assets/
│ ├── css/ # Shared plugin CSS (optional)
│ └── js/ # Shared plugin JS (optional)
├── README.md
├── LICENSE
└── screenshot.png # Banner for WordPress.org (e.g. 772×250); replace as needed
- Create
widgets/your-slug/(lowercase letters, numbers, hyphens only). - Add
widget.phpwith a class extendingElementor\Widget_Base. - Optionally add
style.cssand/orscript.js. The plugin registers handleeefe-widget-your-slugfor each file that exists—use that handle inget_style_depends()/get_script_depends(). - Reload the Elementor editor.
If you previously used extend-elements-for-elementor.php as the bootstrap file, switch WordPress to use extend-elements.php (deactivate the old entry if needed, then activate the plugin again).
- Gradient Heading (
widgets/gradient-heading/) — gradient text, typography, alignment, animation presets (Shimmer, Pulse, Wave, Float).
- WordPress 5.0+
- Elementor installed and active