我已经成功地在模板中使用了短代码,除了需要结束标记来包装其他代码或内容的时候。
问题是,结束标签,如/shortcode,没有处理,只是打印为纯文本屏幕。
我漏掉了什么明显的东西吗?
谢谢!
奥斯丁
发布于 2013-03-04 00:03:33
原因
echo do_shortcode("[/expand]");不能工作是因为/expand本身不是一个有效的短代码。因此,扩展和/expand的结合是有效的
echo do_shortcode("[expand] some content [/expand]");应该能按预期工作。如果你想用这种方式来设置东西
<?php echo do_shortcode("[expand]"); ?>
content
<?php echo do_shortcode("[/expand]"); ?>你必须重新设计你的短代码来做这样的事情
<?php echo do_shortcode("[expand]"); ?>
content
<?php echo do_shortcode("[expandclose]"); ?>并使用单独的短代码关闭内容。
短代码在短代码API中解释得很好。
发布于 2013-03-03 23:30:45
嘿,我找到了一个我认为可行的解决办法:
我之前所做的可能就像你们一样。结构就像我在WordPress编辑器中一样,如下所示
[tabs][image][/image][image][/image][/tabs]在第一次尝试的模板中,如下所示:
<?php echo do_shortcode('[tabs]');
echo do_shortcode('[image]'. code for generating image .'[/imagetab]');
echo do_shortcode('[image]'. code for generating image .'[/imagetab]');
echo do_shortcode('[/tabs]'); ?>这是有效的,除了关闭的短代码将只是显示为文本,而不是关闭其余的一切。似乎对我有效的解决方法是执行与我在图像部分中所做的相同的事情,只在一行中执行整个操作,如下所示
<?php echo do_shortcode('[tabs]'.'[image]'. code for generating image .'[/imagetab]'.'[image]'. code for generating image .'[/imagetab]'.'[/tabs]'); ?>我对这一切还是很熟悉的,所以可能有更好的方法来做到这一点。但它似乎对我有用。我希望这对某人有帮助,如果有人找到更好的方法,一定要让我知道!
https://wordpress.stackexchange.com/questions/83947
复制相似问题