2012-01-11 114 views
0

我想創建一個多個shortcodes這樣的東西。WordPress的短代碼

[tabs] 

[tab title="1"] 
//content goes here 
[/tab] 

[tab title="2"] 
//content2 goes here 
[/tab] 

[tab title="3"] 
//content4 goes here 
[/tab] 

[/tabs] 

預期輸出:

<ul> 
    <li id="tab1">[tab title="1" goes here]</li> 
    <li id="tab2">[tab title="2" goes here]</li> 
    <li id="tab3">[tab title="3" goes here]</li> 
</ul> 

<ul id="tab1"> 
    <li>Content1</li> 
</ul> 

<ul id="tab2"> 
    <li>Content2</li> 
</ul> 

<ul id="tab3"> 
    <li>Content3</li> 
</ul> 

如何做,在WordPress的?

+1

還有什麼比閱讀[官方文檔](http://codex.wordpress。 org/Shortcode_API) – balexandre 2012-01-11 07:26:39

+0

[你確實實現ID屬性必須是唯一的](http://www.w3.org/TR/html4/struct/global.html#h-7.5.2)還有一個[WordPress]( http://wordpress.stackexchange.com/)堆棧交換站點..這應該可能被張貼在那裏,因爲你不是在尋找特定的問題幫助,而是尋找關於如何開發wordpress插件的指導。 – rlemon 2012-01-11 19:28:25

回答

0
add_shortcode('external', 'externalFunction'); 
function externalFunction($atts,$content = null){ 
    echo do_shortcode('[internal]'.$content.'[/internal]'); 
} 

add_shortcode('internal','internalFunction'); 
function internalFunction($atts, $content=null) 
{ 
    extract(shortcode_atts(
     array(
      "title" => '' 
     ), $atts)); 
     /* do your stuffs here */ 
} 
0

首先創建 「選項卡」 簡碼

function tabs_shortcode($atts, $content) { 
    $atts = shortcode_atts(array(  
      'id' => ''   
      ), $atts); 

extract ($atts); // gives you the ability to use array keys as variables 

    return '<ul id="'. $id.'">'. do_shortcode($content) .'</ul>'; 

} 
add_shortcode('tabs', 'tabs_shortcode'); 

現在創建 「選項卡」 簡碼

function tab_shortcode($atts, $content) { 
    $atts = shortcode_atts(array(  
      'id' => ''   
      ), $atts); 

extract ($atts); // gives you the ability to use array keys as variables 

    return '<li id="'. $id.'">'. do_shortcode($content) .'</li>'; 

} 
add_shortcode('tab', 'tab_shortcode'); 

使用方法如下

[tabs id="tab"] 
    [tab id="tab1"] lorem ipsum dolor [/tab] 
    [tab id="tab2"] lorem ipsum dolor [/tab] 
    [tab id="tab3"] lorem ipsum dolor [/tab] 
[/tab]