OOP and WordPress shortcode

时间:2014-05-21 作者:IFightCode

我试图通过这种方式添加一个短代码

class MyPlugin {

    function __construct() {
        $this->make_shortcode();
    }

    function ShowMsg($cls, $lst4) {
        $data = shortcode_atts(array(\'phn\' => \'\', \'msg\' => \'\'), $atts);
        return \'You sent \'.$data[\'msg \'] .\' from \'.$data[\'phn\'] ;
    }

    function make_shortcode() {
        add_shortcode(\'ShowMsg\', \'ShowMsg\');
    }

}
new MyPlugin;
以及[ShowMsg phn="123456" msg="Test Message"] 不起作用,它返回的是完整的短代码,而不是所需的文本。

我需要你的建议来修复。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这不是将对象方法添加为回调的方式。

function make_shortcode() {
    add_shortcode(\'ShowMsg\', array($this,\'ShowMsg\'));
}
对此进行了解释in the Codex 因为它涉及动作和过滤器,但原理是一样的。

我应该补充一点,匿名类会导致痛苦的调试。将该类实例化为变量。这会让你省去头痛。

结束

相关推荐

AJAX in wordpress theme loop

我正试图就我的主题提出一个AJAX请求。我已经知道wordpress很好地处理AJAX,但不能直接处理主题文件。它使用管理ajax。php用于此。我在这方面工作了很长时间,真的不知道该把代码放在哪里。我知道需要将信息放在管理ajax中。php,函数。并且必须指定用户是否未登录。有人能帮我写代码吗?HTML:<article class=\"delivery-individual\"> <!-- # CONTENT HERE --> </arti