OOP и WordPress shortcode

Я попытался добавить короткий код таким образом

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"] не работает, он возвращает полный [ShowMsg phn="123456" msg="Test Message"] вместо желаемого текста.

Мне нужен ваш совет, чтобы исправить.

Это не так, как вы добавляете метод объекта в качестве обратного вызова.

 function make_shortcode() { add_shortcode('ShowMsg', array($this,'ShowMsg')); } 

Это объясняется в Кодексе, поскольку оно относится к действиям и фильтрам, но принцип тот же.

Я должен добавить, что анонимные классы делают для болезненной отладки. Создайте этот класс для переменной. Это избавит вас от головных болей.