我想知道下面是否是一个有效的场景。
[column class='container-fluid']
[column class='container']
[column class='row-fluid']
[column class='span4'] One [/column]
[column class='span4'] Two [/column]
[column class='span4'] Three [/column]
[/column]
[/column]
[/column]
短代码如下。
function get_column($atts,$content = NULL){
extract( shortcode_atts( array(
'class' => '',
), $atts) );
return '<div class="'.strip_tags($class).'">'.do_shortcode($content).'</div>';
}
add_shortcode('column','get_column');
预期输出应为:
<div class='container-fluid petturn1'>
<div class='container'>
<div class='row-fluid'>
<div class='span4'> One </div>
<div class='span4'> Two </div>
<div class='span4'> Three </div>
</div>
</div>
</div>
和实际输出是:
<div class="container-fluid petturn1">
<div class="container"></div>
<div class="row-fluid"></div>
<div class="span4"></div>
One
</div>
<div class="span4"> Two </div>
<div class="span4"> Three </div>
[/column][/column][/column]
我不确定我们是否可以在Wordpress中进行相同短代码的这种级别嵌套。任何人都可以找到上面代码的错误。
Wordpress是否允许嵌套相同的短代码?
感谢。
答案 0 :(得分:2)
限制:嵌套短代码
短代码解析器正确处理嵌套的短代码宏,前提是它们的处理函数通过递归调用do_shortcode()
来支持它:
[tag-a]
[tab-b]
[tag-c]
[/tag-b]
[/tag-a]
但是,如果使用短代码宏来封装另一个同名宏,则解析器将失败:
[tag-a]
[tag-a]
[/tag-a]
[/tag-a]
请参阅documentation。