Wordpress短代码没有正确生成标记

时间:2012-02-29 15:36:04

标签: wordpress shortcode

我正在尝试使用短代码为我的内容创建一些下拉菜单,但我无法正确呈现标记。我想弄明白:

<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时,有些东西阻止短代码完全执行。

有人能看到问题吗?

谢谢,

大须

1 个答案:

答案 0 :(得分:0)

没有看到你传递给你的短代码很难说... 你看过嵌套的短代码&amp;限制? DOCS

你正在使用彼此嵌套的短代码吗? 即:

[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]

希望这应该没问题。

玛蒂

<强> RE-修改

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;
}