nested Shortcode doesn't work

时间:2011-05-29 作者:Flex

短代码:

[permalink][title][/permalink]
输出:

<a href="foobar">[title]</a>
Wordpress短码API sais,正确无误:

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

有什么想法吗?

1 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

从链接的页面:

如果它们的处理函数通过递归调用do\\u shortcode()来支持嵌套的shortcode宏,则shortcode解析器可以正确处理嵌套的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\' );
这应该可以很好地处理嵌套的短代码。

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#