我正在注册一个包含以下内容的短代码:
class Resource extends Shortcode
{
public function action($atts, $content = "broken")
{
$markup = "<span id='examp'> $content </span>";
return $markup;
}
}
$resource = new Resource;
$resource->register();
无论短代码中的值如何,$resource->action(...)
内容中的都被设置为空字符串。
可以找到Shortcode和Resource
的完整代码示例我确实没有其他问题。 $ attr参数与它应该完全一样,唯一显示的是$ content值,没有额外的标记。 如果这还不够,我将共享存储库 - 请告诉我它是否有帮助。
示例输入:
asdf[resource_download]abc[/resource_download]asdf
预期输出:
asdf<span id='examp'>abc</span>asdf
实际输出:
asdfabcasdf
答案 0 :(得分:2)
正如@uɐɥʇɐᴎ合并 efforts 我们发现的问题是,
正在为另一个短代码类(Video而不是Resource)调用 stealshortcode
方法。视频正在设置该模式以匹配在资源有机会接收之前将内容设置为null的所有[(.*?)]
。
基本上从父类调用stealshortcode
,清除了shortocde数据。