web-dev-qa-db-fra.com

shortcode imbriqué ne fonctionne pas

Petit code:

[permalink][title][/permalink]

Sortie:

<a href="foobar">[title]</a>

Wordpress shortcode API sais, c'est correct:

http://codex.wordpress.org/Shortcode_API#Nested_Shortcodes

Des idées?

2
Flex

À partir de la page que vous avez liée:

L'analyseur de shortcode traite correctement les macros de shortcode imbriquées, à condition que leurs fonctions de gestionnaire le supportent en appelant récursivement do_shortcode ():

Vous devez appeler récursivement do_shortcode() sur tout gestionnaire de code court susceptible de contenir des codes courts imbriqués. Donc par exemple:

function wpse18659_permalink( $atts, $content ){
    return '<a href="' . get_permalink() . '" title="Permalink to ' . get_the_title() . '" alt="">' . do_shortcode( $content ) . '</a>';
}

add_shortcode( 'permalink', 'wpse18659_permalink' );

Cela devrait gérer très bien les codes courts imbriqués.

5
John P Bloch