Можно ли зарегистрировать пользовательский компонент контейнера, который будет работать как компонент внутреннего раздела? - PullRequest
0 голосов
/ 05 января 2019

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

...