我的插件提供如下短代码:
[cfgeo return="city"]
- 返回城市名称
[cfgeo include="us"]Text only seen in the US country[/cfgeo]
- 仅从美国的访问者返回此文本。
如果我在内容中放置短代码,如下所示:
<div>[cfgeo return="city"]</div>
<div>[cfgeo include="us"]Text only seen in the US country[/cfgeo]</div>
WordPress出错并按如下方式进行分析:
<div>[cfgeo return="city"]</div><div>[cfgeo include="us"]Text only seen in the US country[/cfgeo]<div>
这意味着短代码的第一个chortcode和闭合状态之间的所有内容都被解析为一个大的短代码。
[cfgeo return="city"]EVERYTHING INSIDE[/cfgeo]
这是一个错误。
我如何避免这种情况?
最合适的回答,由SO网友:Mike Baxter 整理而成
定义短代码时,可以尝试使用几个“if”语句中的一个来解决此问题,直到有时间创建单独的短代码为止。
function cfgeo_shortcode( $atts, $content = "" ) {
if (!isset($content) || stristr($content,\'cfgeo\')!==FALSE){
// do short shortcode stuff here
} else {
// do \'Container\' shortcode stuff here
}
return $output;
}
add_shortcode( \'cfgeo\', \'cfgeo_shortcode\' );
我还建议。。。创建替换短代码时,不仅应创建单独的代码,还应避免在参数的各自名称中使用“return”和“include”等关键字。
祝你好运希望这有帮助。