我正在嘗試創建一個允許用戶創建jQuery UI選項卡的wordpress短代碼。我在網上發現了這個偉大的腳本,聲稱這樣做 - 但它在我的頁面中有一些非常不受歡迎的結果。爲jQuery UI選項卡創建wordpress短代碼
首先,我目前使用的腳本如下:
add_shortcode('tabgroup', 'jqtools_tab_group');
function jqtools_tab_group($atts, $content)
{
$GLOBALS['tab_count'] = 0;
do_shortcode($content);
if(is_array($GLOBALS['tabs'])){
foreach($GLOBALS['tabs'] as $tab){
$tabs[] = '<li><a class="" href="#">'.$tab['title'].'</a></li>';
$panes[] = '<div class="pane"><h3>'.$tab['title'].'</h3>'.$tab['content'].'</div>';
}
$return = "\n".'<!-- the tabs --><ul class="tabs">'.implode("\n", $tabs).'</ul>'."\n".'<!-- tab "panes" --><div class="panes">'.implode("\n", $panes).'</div>'."\n";
}
return $return;
}
add_shortcode('tab', 'jqtools_tab');
function jqtools_tab($atts, $content)
{
extract(shortcode_atts(array(
'title' => 'Tab %d'
), $atts));
$x = $GLOBALS['tab_count'];
$GLOBALS['tabs'][$x] = array('title' => sprintf($title, $GLOBALS['tab_count']), 'content' => $content);
$GLOBALS['tab_count']++;
}
然而,HTML輸出我想實現的是:
<div class="tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Tab 2</a></li>
<li><a href="#tabs-3">Tab 3</a></li>
</ul>
<div id="tabs-1">
<p>Content</p>
</div>
<div id="tabs-2">
<p>Content</p>
</div>
<div id="tabs-3">
<p>Content</p>
</div>
</div>
短碼PHP提供了一個稍微不同的輸出到我需要做的工作 - 這裏是我當前輸出的HTML:
<!-- the tabs -->
<ul class="tabs">
<li><a class="" href="#">Tab 0</a></li>
<li><a class="" href="#">Tab 1</a></li>
<li><a class="" href="#">Tab 2</a></li>
</ul>
<!-- tab "panes" -->
<div class="panes">
<div class="pane">
<h3>Tab 0</h3>Content
</div>
<div class="pane">
<h3>Tab 1</h3>Content
</div>
<div class="pane">
<h3>Tab 2</h3>Content
</div>
</div>
最後,簡碼我使用看起來像這樣:
[tabgroup]
[tab title="tab1"]Content[/tab]
[tab title="tab2"]Content[/tab]
[tab title="tab3"]Content[/tab]
[/tabgroup]
我的問題是,如何我需要改變我的PHP代碼,使輸出的HTML樣子,使標籤工作所需的HTML?
請問關於wordpress.stackexchange.com的問題,你會得到最好的和快速的答案 –