Я только что создал вложенный шорткод с 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», кажется, является причиной, но как мне изменить это значение?

Надеюсь, вы уже нашли ответ на этот вопрос, так как это немного устарело, но я сам искал ответ, и это возникло.
Этот сайт документации может быть вам полезен 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 {
}
}