如果我要做这样的事情,那么我实际上会构建2个短代码。一个用于“盒子”,一个用于内部“盒子”。我确实相信这是唯一可行的方法。
为外部框构建一个时,只需确保使用do\\u shortcode();围绕内容变量。如果不使用do\\u shortcode(),则无法在另一个短代码中使用短代码[]。
add_shortcode(\'boxes\', \'shortcode_boxes\');
add_shortcode(\'box\', \'shortcode_box\');
function shortcode_boxes($args, $content = null) {
extract(shortcode_atts(array(
\'style\' => \'\'
), $args));
return \'<section class="\'. $style .\'">\'. do_shortcode($content) .\'</section>\';
}
function shortcode_box($args, $content = null) {
extract(shortcode_atts(array(
\'id\' => \'\'
), $args));
return \'<article id="\'. $id .\'">\'. do_shortcode($content) .\'</article>\';
}
这是在HTML5中完成的,但您可以更改文章&;分区到div,一切都会好起来的。
用法:
[boxes class="blue"]
[box id="one"]content[/box]
[box id="two"]content[/box]
[/boxes]
您将希望在编辑器上使用文本版本而不是视觉版本,除非您使用重写过滤器来修复空格/p/br如果没有,则必须使用
[boxes style="blue"]
[box id="one"]
content
[/box]
[box id="two"]
content
[/box]
[/boxes]
如果您有任何问题、疑问或担忧,请告诉我。
---编辑---
将样式替换为类:
<section class="\'. $style .\'">
课程应该按照你的风格设置。css,在本例中为蓝色。
.blue {
/* class style */
}