是否从其回调函数中获取短码名称?

时间:2012-07-10 作者:Nikolay Dyankov

Possible Duplicate:
current_shortcode() - detect currently used shortcode

我正在使用我的插件动态生成短代码,如下所示:

foreach ($options[\'grids\'] as $grid) {
    add_shortcode($grid[\'shortcode\'], array($this, \'print_shortcode\'));
}
但问题是,在回调函数中,我需要根据短代码的名称打印不同的内容。

我的问题是-如何从print\\u shortcode()中获取短代码的名称?

非常感谢。

1 个回复
SO网友:Evan Mattson

短代码的名称称为标记。标记实际上是传递给短代码回调函数的第三个(也是最后一个)参数。

因此,您的回调应该如下所示:

function print_shortcode($atts, $content, $tag) {
    // $atts - array of attributes passed from shortcode
    // $content - content between shortcodes that have enclosing tags eg: [tag]content[/tag]
    // $tag - shortcode name

    // do something... perhaps:

    switch($tag) {
        case \'dog\':
            // some code
            break;

        case \'cat\':
            // some code
            break;

        case \'asparagus\':
            // some code
            break;
    } // switch
}

结束