0

我正在尝试使用简码为我的内容创建一些下拉“选项卡”,但我无法正确呈现标记。我试图得到这个:

<div class="tab">
  <h2 class="reytab">Title</h2>
  <div class="tab-content">...content appears here...</div>
</div>

但是使用下面的简码,在简码中的所有其他内容都被解析后返回内容,而不是中间<div class="tab-content"></div>

短代码

function reytab($atts, $content = null) {
       extract(shortcode_atts(array('title' => '#'), $atts));
       return '<div class="tab"><h2 class="reytab">' . $title . '</h2><div class="tab-content">' . do_shortcode($content) . '</div></div><!-- End div.tab -->';

}
add_shortcode('reytab', 'reytab');

从简码生成的标记

<div class="tab">
  <h2 class="reytab">Title</h2>
  <div class="tab-content"></div>
</div>
...content appears here...[\reytab]

最后出现的事实[\reytab]向我表明,当短代码到达$content.

任何人都可以看到问题吗?

谢谢,

大须

4

1 回答 1

0

没有看到你传递给你的简码很难说..你看过嵌套简码和限制吗?文档

您是否使用彼此嵌套的简码?IE:

[reytab title='Tabs Title']this is my gallery [gallery id=3][/reytab]

对我来说看起来不错。刚刚在我的博客上测试过,它可以使用内联文本和画廊的短代码

function reytab_shortcode($atts, $content = null) {
       extract(shortcode_atts(array('title' => '#'), $atts));
       $myShotcode = '<div class="tab">';
       $myShotcode.= '<h2 class="reytab">'.$title.'</h2>';
       $myShotcode.= '<div class="tab-content">'.do_shortcode($content).'</div>';
       $myShotcode.= '</div>';
       return $myShotcode;
}
add_shortcode('reytab', 'reytab_shortcode');

然后在你的帖子和页面中你可以写类似的东西。

[reytab title='Tabs Title']
this is my gallery [whichevershortcodeyouwant]
[/reytab]

希望这应该没问题。

马蒂

重新编辑

function reytab_shortcode($atts, $content=null) {
    extract(shortcode_atts(array('title' => '#'), $atts));
    $myShotcode = '<div class="tab">';
    $myShotcode.= '<h2 class="reytab">'.$title.'</h2>';
    $myShotcode.= '<div class="tab-content">'.do_shortcode($content).'</div>';
    $myShotcode.= '</div>';
    return $myShotcode;
}
于 2012-02-29T16:24:05.137 回答