Почему vc_map в vc_before_init не будет работать, но будет работать при использовании только init в WP Bakery? - PullRequest
0 голосов
/ 25 декабря 2018

Я создаю плагин, который должен создать новый компонент для WP Bakery, как следующий код:

// Componente do WP Bakery
add_action('vc_before_init', function () {
    vc_map([
        'name' => 'Formulário do Catálogo de Cursos',
        'base' => 'vc_download_catalog_form',
        'category' => 'Cursos',
        'icon' => 'https://image.flaticon.com/icons/svg/1042/1042360.svg',
        'params' => [
            [
                'type' => 'textfield',
                'heading' => 'ID de âncora',
                'param_name' => 'anchor',
                'group' => 'Âncora',
                'std' => 'formularioDeDownloadDeCatalogoAncora',
            ],
            [
                'type' => 'css_editor',
                'heading' => 'CSS',
                'param_name' => 'css',
                'group' => 'Design',
            ],
        ]
    ] );                               
});

// Configuração de shortcode
add_shortcode('vc_download_catalog_form', function ($atts) {
    $atts = shortcode_atts([
        'anchor' => 'formularioDeDownloadDeCatalogoAncora',
        'css' => '',
    ], $atts, 'vc_download_catalog_form');

    $atts['css'] = apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, vc_shortcode_custom_css_class($atts['css'], ' '), 'vc_download_catalog_form', $atts);

    return unasp_include_template(__DIR__ . '/catalog_form.template', $atts);      
});

Шорткод добавляется без проблем.Однако этот компонент не появится в окне компонентов WP Bakery.Если я изменю vc_before_init на init, он будет работать как положено.

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

Что не так с моим кодом?Или я упускаю некоторые детали?Я не могу понять.

...