Можно ли зарегистрировать пользовательский компонент контейнера, который будет работать как компонент внутреннего раздела?

Я пытаюсь создать расширение для плагина WordPress Elementor. Я хотел бы иметь элемент, который является контейнером для дочерних элементов. Так что это будет работать аналогичным образом, как работает виджет Внутренняя секция.

В документации Elementor не упоминается, как регистрировать контейнероподобные элементы. Я немного покопался в коде и обнаружил, что Elements_Manager класс отвечает за регистрацию элементов. Я обнаружил, что регистрация происходит в пределах init_elements метод.

Поэтому я попытался продлить \Elementor\Element_Column класс (это класс, отвечающий за элемент 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, он также не вызывает никаких ошибок. Я не знаю, что я делаю не так. Я даже не знаю, возможно ли то, чего я пытаюсь достичь.

0 ответов

Другие вопросы по тегам