Как добавить пользовательский пункт меню при активации плагина?

Когда мой плагин активирован, я хотел бы добавить новый пункт меню. Вот мой код:

class My_Plugin { function __construct() { register_activation_hook(__FILE__, array($this, 'install')); } function install() { add_action('admin_menu', array($this, 'add_menu_item')); } public function add_menu_item() { add_menu_page(...); } } $my_plugin = new My_Plugin(); 

К сожалению, это не сработает. Я замечаю, что вызывается install , но add_menu_item нет.

Каким будет правильный способ сделать это?

Solutions Collecting From Web of "Как добавить пользовательский пункт меню при активации плагина?"

Плагины активируются в песочнице, и их вывод записывается для проверки ошибок и перенаправляется, если активация прошла успешно. Добавление чего-то в крючок активации приведет к тому, что он будет запускаться один раз в этой «невидимой» песочнице при активации, и все.

Когда вы добавляете действие, вы добавляете его только для этого запроса , если вы хотите, чтобы ваш элемент меню был видимым при каждой загрузке страницы администратора, add_action следует перенести в функцию __construct .