为什么vc_before_init中的vc_map无法使用,但是仅在WP Bakery上使用init时可以使用?

时间:2018-12-25 15:47:19

标签: wordpress visual-composer

我正在制作一个插件,该插件应为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,但是如果我尝试使用此建议,则插件将无法正常工作。

我的代码有什么问题?还是我缺少一些细节?我不知道。

0 个答案:

没有答案