短码在实时环境中不起作用

时间:2015-02-21 作者:Scuba Kay

我目前正在开发一个使用短代码的插件。在我的本地主机上,只要使用短代码,一切都可以正常工作,例如:

[bbit bandname="Lady Gaga"]
这将显示BandsTown的列表。为艺术家做的com演出,就像它应该做的那样。现在,当我在WordPress repo的一个实时网站上安装插件时,我使用了完全相同的代码,网站上的帖子显示的是短代码,而不是Gig列表。

更多信息:

我已经尝试了其他使用短代码的插件(如Contact Form 7),它们很管用这里可能有什么问题?

[编辑]我下载了调试栏和调试栏短代码。它表明注册短代码有问题。

1 个回复
SO网友:Scuba Kay

所以这就是问题所在:

在live site上使用WP\\U DEBUG运行后,发现$这没有在以下行中定义:

public function __construct(){
    add_action(\'init\', function(){
        add_shortcode(\'bbit\', array($this, \'shortcode_handler\'));
    });
}
shortcode\\u处理程序在这里是一个非静态函数,并且这些代码都是在静态上下文中调用的。我的本地XAMPP配置和服务器配置似乎有些不同。我通过删除旧代码并在类外添加以下代码来修复它:

add_action(\'init\', function(){
    add_shortcode(\'bbit\', array(\'BBIT_ShortCode\', \'shortcode_handler\'));
});
之后,我只需要将shortcode\\u handler方法设置为静态,然后进行了修复。

结束

相关推荐

Children Shortcodes?

几周前我开始创建WordPress插件,我想知道是否有可能在其他一些插件中“嵌入”短代码。基本上,我想做的是根据插件用户输入的一组项目创建一个表或列表。有没有可能有这样的东西: [data] [item1] something [/item1] [item2] something else[/item2] [item3] something else[/item3] [/data] 简而言之,我想基于itemX“children”短代码中