Intereting Posts
Фильтр media_upload_tabs не работает в классе Как добавить мета-поля (поля повторителя) из WordPress назад? Какие плагины я могу использовать для создания (присоединенного) продукта в своем блоге (от Amazon.com)? Проблемы с пользовательскими таксономиями Захватите последнюю часть правила URL внутри Не удается просмотреть страницы или сообщения Есть способ добавить обертку вокруг размещенных изображений? Можно ли использовать 'date_default_timezone_set' в файле плагина? Как настроить Docker для разработки и развертывания пользовательской темы? Отобразить самую глубокую категорию детей из категории X (в цикле) Как получить текст только из wp_content () не из wp_excerpt ()? Есть ли реальный случай использования для почтовых форматов, кроме микроблогов? Пользовательский фон не отображается Как добавить div для вывода галереи по умолчанию Проверка покупки Paypal – это успех или нет в Easy Digital Download Plugin

Создание страницы меню в объектно-ориентированном разработанном плагине

Я пытаюсь в первый раз создать плагин для WordPress по пути OOP. У меня возникают некоторые проблемы при попытке создать страницу подменю с помощью функции add_users_page() .

Вот простая версия моего кода:

 class MyPlugin { public function __construct() { add_action('admin_menu', array($this, 'create_menu')); } public static function create_menu() { add_users_page( 'My Plugin Menu', 'My Plugin Menu (Test)', 'list_users', 'mp_test_page', array($this, 'display_test_page')); } public static function display_test_page() { if ( !current_user_can( 'list_users' ) ) { wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); } echo '<h2>Test page</h2>'; echo '<p>The Problem : I cannot see that output in the corresponding submenu page</p>'; } } new MyPlugin(); 

Проблема в том, что я не вижу выход html в функции display_test_page() … хотя страница подменю действительно была создана в общем меню «Пользователи».

Заранее спасибо за вашу помощь,

Вы смешиваете статическое и нестатическое использование. Ваш стиль нестатический, но ваши методы объявлены как таковые. Если вы включите режим WP_DEBUG вы увидите следующие ошибки:

Примечание. Неопределенная переменная: это

Предупреждение: call_user_func_array () ожидает, что параметр 1 является допустимым обратным вызовом, первый член массива не является допустимым именем или объектом класса

Это происходит из-за того, что статический метод не «знает», что означает $this значение, поскольку static не привязано к конкретному экземпляру класса.

Просто объявите свои методы как public а не public static для этой организации кода.