如何使用快捷码创建增量列表?

时间:2016-02-16 作者:alex

现在我正在创建这样的短代码:

function short_code($atts) {
  $a = shortcode_atts( array(
    \'name\' => \'\'
  ), $atts );

return \'<div class="content">
  <div class="container">
    <p>\' . esc_attr($a[\'name\']) . \'</p>
  </div>
</div>\';
}
add_shortcode( \'short-code\', \'short_code\' );

// Usage: [short-code name="John"]
如何实现增量短代码?换言之,修改短代码以便我可以这样做?[short-code name="John" name="Jack" name="Mary"] 生产这样的产品?

<div class="content">
  <div class="container">
    <p>John</p>
    <p>Jack</p>
    <p>Mary</p>
  </div>
</div>
我继续搜索Google 但我什么也没找到。

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

您想要的是使用短代码属性。我在google上搜索了“wordpress shortcode attributes”,在WP中找到了下面的示例代码Codex

// [bartag foo="foo-value"]
function bartag_func( $atts ) {
    $a = shortcode_atts( array(
        \'foo\' => \'something\',
        \'bar\' => \'something else\',
    ), $atts );

    return "foo = {$a[\'foo\']}";
}
add_shortcode( \'bartag\', \'bartag_func\' );
您可能希望为问题中显示的示例传递一个数组

[short-code names="John", "Jack", "Mary"]
您可以按照示例代码并访问名称数组来获取名称列表:

foreach($a[\'names\'] as $name){
    echo "<p>$name</p>";
}
编辑:需要明确的是,您将从args获取数组,如下所示:

$a = shortcode_atts( array(
    \'names\' => \'names\'
), $atts );

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\