Visual Composer Вложенные шорткоды в контейнере

Я только что создал вложенный шорткод с vc_map для веб-сайта WordPress.

Он работает очень хорошо и очень просто.

Мой родительский шорткод - «simple_table», а мой шорткод для детей - «simple_table_row».

[simple_table param = "foo"]
   [simple_tablerow param = "another_foo"]
   [simple_tablerow param = "another_foo"]
   [simple_tablerow param = "another_foo"]
[/simple_table]

Я могу добавить свой шорткод в корень страницы или в строку.

Однако я не могу добавить внутрь другого контейнера, такого как вкладки, тур, аккордеон или Pageable Container. Мой вложенный шорткод не отображается в списке элементов. Я уже создал несколько простых шорткодов, которые правильно работают в этих конкретных случаях.

Вот мой vc_map:

vc_map( array(
    "name" => "Simple_table",
    "description" => "Simple_table",
    "base" => "simple_table",
    "class" => "simple_table",
    "content_element" => true,
    "is_container" => true,
    'as_parent' => array('only' => 'simple_tablerow'),
    "show_settings_on_create" => true,
    "icon" => "simple_table_icon", 
    "category" => __('Content', 'js_composer'),
    "js_view" => 'VcColumnView',
    "params" => array(
                    array(
                        'type' => 'param_group',
                        'value' => '',
                        'param_name' => 'cols',
                        "heading" => "Cols",
                        'params' => array(
                            array(
                                'type' => 'textfield',
                                "holder" => "div",
                                'value' => '',
                                'heading' => 'Data',
                                'param_name' => 'data',
                                'admin_label' => true,
                            ),
                            array(
                                'type' => 'textfield',
                                'value' => '',
                                'heading' => 'Style',
                                'param_name' => 'style',
                            ),
                            array(
                                'type' => 'textfield',
                                'value' => '',
                                'heading' => 'Class',
                                'param_name' => 'class',
                            )
                        )
                    ),
                    array(
                      "type" => "checkbox",
                      "class" => "",
                      "heading" => "hide_header",
                      "param_name" => "hide_header"
                  ),
                    array(
                         "type" => "textfield",
                         "holder" => "",
                         "class" => "",
                         "heading" => "Class",
                         "param_name" => "class"
                    ),
      ),
    )
);

vc_map( array(
    "name" => "Simple_tablerow",
    "description" => "simple_tablerow",
    "base" => "simple_tablerow",
    "class" => "simple_tablerow",
    "content_element" => true,
    "as_child" =>  array('only' => 'simple_table'),
    "show_settings_on_create" => true,
    "icon" => "hide_header",
    "category" => __('Content', 'js_composer'),
    "params" => array(
        array(
            'type' => 'param_group',
            'value' => '',
            'param_name' => 'cols',
            "heading" => "Cols",
            'params' => array(
                array(
                    'type' => 'textfield',
                    'value' => '',
                    'heading' => 'Data',
                    'param_name' => 'data',
                    'admin_label' => true,
                ),
                array(
                    'type' => 'textfield',
                    'value' => '',
                    'heading' => 'Style',
                    'param_name' => 'style',
                ),
                array(
                    'type' => 'textfield',
                    'value' => '',
                    'heading' => 'Class',
                    'param_name' => 'class',
                )
            ),
        ),
        array(
            'type' => 'textfield',
            'value' => '',
            'heading' => 'Class',
            'param_name' => 'class',
        )
    ),
    )
);

Как я могу добавить вложенные шорткоды, доступные в контейнере, например, вкладки, тур, аккордеон или Pageable Container?

Примечание. Параметр «allowed_container_element», кажется, является причиной, но как мне изменить это значение?

Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
0
839
1

Ответы 1

Надеюсь, вы уже нашли ответ на этот вопрос, так как это немного устарело, но я сам искал ответ, и это возникло.

Этот сайт документации может быть вам полезен https://kb.wpbakery.com/docs/developers-how-tos/nested-shortcodes-container/

Если бы мне пришлось угадывать, похоже, вы забыли последний фрагмент кода внизу, где вы расширяете WPBakeryShortCodesContainer.

//Your "container" content element should extend WPBakeryShortCodesContainer class to inherit all required functionality
if ( class_exists( 'WPBakeryShortCodesContainer' ) ) {
  class WPBakeryShortCode_Your_Gallery extends WPBakeryShortCodesContainer {
  }
}
if ( class_exists( 'WPBakeryShortCode' ) ) {
  class WPBakeryShortCode_Single_Img extends WPBakeryShortCode {
  }
}

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