Я пытаюсь построить расширение для Плагин WordPress Elementor. Я хотел бы иметь элемент, который является контейнером для дочерних элементов. Так что это будет работать так же, как Внутренняя секция виджет работает.
В документации Elementor не упоминается, как регистрировать контейнероподобные элементы. Я немного покопался в коде и обнаружил, что Elements_Manager
класс отвечает за регистрацию элементов. Я обнаружил, что регистрация происходит в пределах init_elements
метод.
Поэтому я попытался продлить \Elementor\Element_Column
class (это класс, отвечающий за элемент Inner Section) и подключаемый к элементам, регистрирующимся с помощью 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, он также не вызывает никаких ошибок. Я не знаю, что я делаю не так. Я даже не знаю, возможно ли то, чего я пытаюсь достичь.
Задача ещё не решена.
Других решений пока нет …