@easycode
не боюсь задавать глупые вопросы ))

Метод vc_mapping в кастомном блоке WPBakeryShortCode инициализируется на всех страницах?

Пришлось мне тут писать блок для Visual Composer как-то так:

add_action('init', function() {
    class vcCatalogBlock extends WPBakeryShortCode
    {
        function __construct()
        {
            add_action('vc_before_init', [$this, 'vc_mapping']);
            add_shortcode('vc_catalog_block', [$this, 'vc_catalog_block']);
        }

        public function vc_mapping()
        {
            vc_map(
                array(
                    'name' => 'VC Catalog Block',
                    'base' => 'vc_catalog_block',
                    'description' => 'Каталог компаний',
                    'category' => 'Блоки',
                    'icon' => '',
                    'params' => array(
                        array(
                            'type' => 'dropdown',
                            'heading' => "Выберите конференцию",
                            'param_name' => 'conference_id',
                            'value' => $this->get_conferences(),
                            'admin_label' => true,
                        ),
                    )
                )
            );
        }

        public function get_conferences()
        {
            $result = wp_remote_post(CRM_SITE_URL . '/api/conference/list');
        }

    }

    new vcCatalogBlock();
});


он получает данные по API с соседнего сайта - и что вы думаете?
эта зараза на всех страницах WordPress срабатывает а не только когда используется на сайте или редактируется в админке!

получается экшен vc_before_init срабатывает всегда и на всех страницах - но зачем?

может я что-то не учел? как-то не правильно сделал?
  • Вопрос задан
  • 26 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы