Я пытаюсь создать расширение для плагина WordPress Elementor . Я хотел бы иметь элемент, который является контейнером для дочерних элементов. Таким образом, он будет работать аналогичным образом, как работает виджет Inner Section .
В документации Elementor не упоминается, как регистрировать контейнероподобные элементы. Я немного покопался в коде и обнаружил, что класс Elements_Manager
отвечает за регистрацию элементов. Я обнаружил, что регистрация происходит в рамках метода init_elements
.
Итак, я попытался расширить класс \Elementor\Element_Column
(это класс, отвечающий за элемент внутреннего сечения) и подключиться к регистрации элементов с помощью ловушки elementor/elements/elements_registered
.
// widget.php
class Test_Widget extends \Elementor\Element_Column {
public function get_name() {
return 'test widget';
}
public function get_title() {
return __( 'test widget', 'plugin-name' );
}
}
// my-plugin.php
add_action('elementor/elements/elements_registered', function () {
require_once __DIR__ .DIRECTORY_SEPARATOR . 'widget.php';
Elementor\Plugin::instance()->elements_manager->register_element_type( new \Test_Widget() );
});
Но это не работает. Мой пользовательский элемент не отображается в списке элементов в пользовательском интерфейсе Elementor, он также не вызывает никаких ошибок. Я не знаю, что я делаю не так. Я даже не знаю, возможно ли то, чего я пытаюсь достичь.