В данном уроке я покажу как создать виджет для Elementor. Elementor — это визуальный конструктор страниц для WordPress, который представляет собой плагин для этой платформы. Он обеспечивает пользователям возможность создавать и редактировать веб-страницы непосредственно на фронтенде сайта, то есть визуально, без необходимости в ручном кодировании.
Особенности Elementor?
Вот несколько ключевых особенностей Elementor:
- Визуальный Редактор: Elementor предоставляет интуитивно понятный визуальный интерфейс для создания веб-страниц. Вы можете просматривать изменения непосредственно на странице в режиме реального времени.
 - Богатая Библиотека Элементов: Плагин включает в себя обширную библиотеку готовых к использованию элементов (виджетов), таких как текстовые блоки, изображения, кнопки, формы, галереи и многие другие. Это упрощает процесс создания разнообразных элементов страницы.
 - Мобильная Отзывчивость: Elementor автоматически обеспечивает отзывчивость создаваемых страниц, что позволяет им корректно отображаться на различных устройствах и разрешениях экрана.
 - Стили и Темы: Пользователи могут легко настраивать стили страницы, включая цвета, шрифты и макет, применяя кастомные стили или используя предустановленные темы.
 - Поддержка Тем: Elementor совместим с большинством тем WordPress, что позволяет пользователям сохранять единый стиль и дизайн своего сайта.
 - Импорт/Экспорт Шаблонов: Есть возможность импорта и экспорта готовых шаблонов, что облегчает совместную работу и перенос дизайна между разными сайтами.
 - Совместимость с WooCommerce: Elementor может использоваться для создания стилей страниц для магазинов, работающих на платформе WooCommerce.
 
Как создать виджет для Elementor и WordPress | Elementor + Redux
Вашему вниманию инструкция в видео формате в которой показано как создать свой виджет для Elementor. HTML шаблон для этого урока можно скачать в нашем телеграм по ссылке.
Иерархия файлов для плагина
Давайте создадим простое дополнение (Addon) для Elementor, которое добавит два виджета в Elementor. Первый будет простым виджетом «Hello World», а второй будет похожим, но с улучшенной функциональностью.
Дополнение должно быть размещено в папке wp-content/plugins/ вашего сайта, и его структура папок должна выглядеть примерно так:
elementor-addon/
|
├─ widgets/
|  ├─ hello-world-widget-1.php
|  └─ hello-world-widget-2.php
|
└─ elementor-addon.php
Вы можете заархивировать всю папку «elementor-addon» в ZIP-архив и загрузить этот ZIP-файл на свой сайт через раздел «Панель управления WordPress» > «Плагины». Или же вручную используя FTP.
Файлы плагина
Для этих виджетов потребуются несколько файлов. Основной файл elementor-addon.php будет регистрировать виджеты. Файлы hello-world-widget-1.php и hello-world-widget-2.php будут управлять функциональностью виджетов:
elementor-addon.php
<?php
/**
 * Plugin Name: Elementor Addon
 * Description: Simple hello world widgets for Elementor.
 * Version:     1.0.0
 * Author:      Elementor Developer
 * Author URI:  https://genius.courses/
 * Text Domain: elementor-addon
 */
function register_hello_world_widget( $widgets_manager ) {
	require_once( __DIR__ . '/widgets/hello-world-widget-1.php' );
	require_once( __DIR__ . '/widgets/hello-world-widget-2.php' );
	$widgets_manager->register( new \Elementor_Hello_World_Widget_1() );
	$widgets_manager->register( new \Elementor_Hello_World_Widget_2() );
}
add_action( 'elementor/widgets/register', 'register_hello_world_widget' );
Комментарии в заголовке — это стандартный способ, которым WordPress предоставляет информацию о плагинах:

Elementor регистрирует новые виджеты с помощью функции регистрации виджетов. Здесь мы будем использовать хук elementor/widgets/register для запуска функции register_hello_world_widget().
Сначала функция загружает два файла виджетов, а затем регистрирует классы виджетов, используя менеджер виджетов. После выполнения этого кода в панели виджетов будут отображаться два виджета:

Файл первого виджета
Первый виджет находится в файле widgets/hello-world-widget-1.php. Он довольно прост, просто выводит текст «Hello World» на экран. Создайте его, используя следующий код:
<?php
class Elementor_Hello_World_Widget_1 extends \Elementor\Widget_Base {
	public function get_name() {
		return 'hello_world_widget_1';
	}
	public function get_title() {
		return esc_html__( 'Hello World 1', 'elementor-addon' );
	}
	public function get_icon() {
		return 'eicon-code';
	}
	public function get_categories() {
		return [ 'basic' ];
	}
	public function get_keywords() {
		return [ 'hello', 'world' ];
	}
	protected function render() {
		?>
		<p> Hello World </p>
		<?php
	}
}
Файл второго виджета
Второй виджет находится в файле widgets/hello-world-widget-2.php. Он создает два элемента управления в панели виджетов. Один из них позволяет пользователю ввести свой собственный текст и стилизовать его с помощью пользовательского цвета (с «Hello World» в качестве текста по умолчанию). Создайте его, используя следующий код:
<?php
class Elementor_Hello_World_Widget_2 extends \Elementor\Widget_Base {
	public function get_name() {
		return 'hello_world_widget_2';
	}
	public function get_title() {
		return esc_html__( 'Hello World 2', 'elementor-addon' );
	}
	public function get_icon() {
		return 'eicon-code';
	}
	public function get_categories() {
		return [ 'basic' ];
	}
	public function get_keywords() {
		return [ 'hello', 'world' ];
	}
	protected function register_controls() {
		// Content Tab Start
		$this->start_controls_section(
			'section_title',
			[
				'label' => esc_html__( 'Title', 'elementor-addon' ),
				'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
			]
		);
		$this->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-addon' ),
				'type' => \Elementor\Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Hello world', 'elementor-addon' ),
			]
		);
		$this->end_controls_section();
		// Content Tab End
		// Style Tab Start
		$this->start_controls_section(
			'section_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-addon' ),
				'tab' => \Elementor\Controls_Manager::TAB_STYLE,
			]
		);
		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-addon' ),
				'type' => \Elementor\Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .hello-world' => 'color: {{VALUE}};',
				],
			]
		);
		$this->end_controls_section();
		// Style Tab End
	}
	protected function render() {
		$settings = $this->get_settings_for_display();
		?>
		<p class="hello-world">
			<?php echo $settings['title']; ?>
		</p>
		<?php
	}
}
Теперь, когда вы увидели, насколько легко создать своё первое дополнение для Elementor, пришло время воспользоваться растущим рынком Elementor и приступить к воплощению своих собственных крутых идей.
Заключение. Как создать виджет для Elementor
В заключении данной статьи мы рассмотрели процесс создания виджетов для Elementor — визуального конструктора страниц WordPress. Elementor предоставляет удобные инструменты для создания интересных и функциональных веб-страниц без необходимости в глубоких знаниях кода. Однако для разработки виджетов необходимы знание PHP и WordPress Codex.
        
                          
