jQuery Tabs in Shortcode API

时间:2012-01-31 作者:pope

html原型的Pastebin和我对wp函数的尝试->http://pastebin.com/91zBv8sk

我想要一个简单的符号,以便新用户可以轻松使用。这样的话:

[选项卡]

第一个选项卡的内容

第二个选项卡的内容

[/选项卡]

我理解为什么函数的符号是错误的,但我想我会放弃我最好的尝试。

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

Try This:

function defaulttab( $atts, $content = null ) {
    $GLOBALS[\'tab_count\'] = 0;
    do_shortcode($content)
    if( is_array( $GLOBALS[\'tabs\'] ) ){
        $i = 1;
        foreach( $GLOBALS[\'tabs\'] as $tab ){
            $tabs[] = \'<li><a class="tab" href="#">\'.$tab[\'title\'].\'</a></li>\';
            $panes[] = \'<div class="tab\'.$i.\'" class="tabcontent">\' .$tab[\'content\'].\'</div>\';
            $i++;
        }
        $return = \'<div class="tabcontainer"><ul class="selector">\'.implode( "\\n", $tabs ).\'</ul>
            <div class="clear"></div>\'.implode( "\\n", $panes ).\'</div>\';
    }
    return $return;
}


add_shortcode(\'tab\', \'defaulttab\');

function defaulttabs( $atts, $content = null ) {
    extract( shortcode_atts( array(
    \'title\' => \'\',
    \'tab\' => \'1\',
    ), $atts ) );

    $i = $GLOBALS[\'tab_count\'];
    $GLOBALS[\'tabs\'][$i] = array( \'title\' => sprintf( $title, $GLOBALS[\'tab_count\'] ), \'content\' =>  $content );
    $GLOBALS[\'tab_count\']++;
}

add_shortcode(\'tabs\', \'defaulttabs\');
结束