快捷码:未处理关闭快捷码

时间:2013-01-31 作者:Austen Osborne

我在模板中成功地使用了短代码,除了需要一个结束标记来包装其他代码或内容时。

问题是,结束标记(例如[[短代码])没有得到处理,只是作为纯文本打印到屏幕上。

我是否遗漏了一些明显的东西?

谢谢

奥斯汀

2 个回复
SO网友:Kim

原因

echo do_shortcode("[/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]"); ?>
并使用单独的短代码关闭内容。

短代码在Shortcode API

SO网友:Matt Lawhead

嘿,我找到了一个我认为有效的解决方法:

我之前所做的可能和你们一样。就像我在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]\'); ?>
我对这一切还很陌生,所以可能有更好更优雅的方法来做这件事。但这似乎对我有用。我希望这对某人有所帮助,如果有人找到更好的方法,请务必让我知道!

结束

相关推荐

Get URL from shortcode tag

我正在运行一个wordpress站点,我需要正确的regex语法来从\\u content()中返回的一些短代码中获取URL。当我使用\\u content()时,它将返回如下内容:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nulla enim, euismod ut pharetra nec, commodo a augue. Etiam sit amet nibh mauris, eu ornare purus. V