Execute shortcode apenas em outro código curto

Pergunto-me se é possível fazer um shortcode apenas em outro shortcode . Por exemplo, recebi as seguintes peças de código:

[heading]some pricing page[/heading] [pricing_box] [heading]Some title[/heading] [/pricing_box] 

Agora, não quero definir um título curto que se aplique tanto ao código nested como ao código curto do primeiro nível. Quero que ambos encaminhem códigos curtos para produzir saídas diferentes. Claro, eu poderia tentar resolver isso renomeando um dos códigos curtos para o título ou algo assim, mas isso nem sempre resulta em arranjos de nomeação ótimos.

Solutions Collecting From Web of "Execute shortcode apenas em outro código curto"

Para usar um retorno de chamada diferente para os headers nesteds, mude o manipulador de pricing_box callbackboxbox e restaure o manipulador principal antes de retornar a string.

 add_shortcode( 'pricing_box', 'shortcode_pricing_box' ); add_shortcode( 'heading', 'shortcode_heading_main' ); function shortcode_pricing_box( $atts, $content = '' ) { // switch shortcode handlers add_shortcode( 'heading', 'shortcode_heading_pricing_box' ); $out = '
' . do_shortcode( $content ) . '
'; // restore main handler add_shortcode( 'heading', 'shortcode_heading_main' ); return $out; } function shortcode_heading_main( $atts, $content = '' ) { return "

$content

"; } function shortcode_heading_pricing_box( $atts, $content = '' ) { return "

$content

"; }