我正在尝试使用短代码为我的内容创建一些下拉菜单,但我无法正确呈现标记。我想弄明白:
<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
时,有些东西阻止短代码完全执行。
有人能看到问题吗?
谢谢,
大须
答案 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;
}