我试图通过这种方式添加一个短代码
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"]
不起作用,它返回的是完整的短代码,而不是所需的文本。
我需要你的建议来修复。
最合适的回答,由SO网友:s_ha_dum 整理而成
这不是将对象方法添加为回调的方式。
function make_shortcode() {
add_shortcode(\'ShowMsg\', array($this,\'ShowMsg\'));
}
对此进行了解释
in the Codex 因为它涉及动作和过滤器,但原理是一样的。
我应该补充一点,匿名类会导致痛苦的调试。将该类实例化为变量。这会让你省去头痛。