вложенный шорткод не работает


Короткий код:

[permalink][title][/permalink]

Вывод:

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

API шорткодов Wordpress говорит, что это правильно:

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

Есть идеи?

 2
Author: Flex, 2011-05-29

1 answers

Со страницы, на которую вы указали ссылку:

Анализатор коротких кодов корректно обрабатывает вложенные макросы коротких кодов при условии , что их функции обработчика поддерживают его рекурсивным вызовом do_shortcode():

Вам необходимо рекурсивно вызвать do_shortcode() для любого обработчика коротких кодов, который может содержать вложенные короткие коды. Так, например:

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' );

Это должно отлично обрабатывать вложенные короткие коды.

 5
Author: John P Bloch, 2011-05-29 20:04:31