Предложения по подходу к новому плагину Я застрял

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

Цель плагина состояла в следующем: создать подсказки для инструментов, отображающие имя плагина, для любых пунктов меню на страницах администратора, которые были созданы плагинами (то есть не являются частью установки WP по умолчанию). Так, например, вы можете увидеть пункт меню: «Пользователи / Роли» и подумайте: «Откуда этот элемент ролей?» Затем вы наведете курсор над элементом, и появится подсказка с надписью «Добавлено плагинами членов», чтобы вы знали, что этот элемент был добавлен плагином Members.

Поэтому сначала я исследовал класс Walker , но это, похоже, не применимо к меню администратора. Затем я искал фильтры для меню администратора, чтобы попытаться добавить атрибут заголовка HTML в элементы меню, созданные плагинами, но я, похоже, не нашел подходящих фильтров.

Я просмотрел глобальные переменные $menu и $submenu в WP, но по некоторым причинам некоторые элементы меню, которые присутствовали на этой странице, не были в этих коллекциях, в частности те, которые были созданы вышеупомянутым плагином Member.

Поэтому, наконец, я подумал, что get_plugins() массив плагинов с помощью функции get_plugins() , после чего я get_plugins() имя каждой папки плагина из этого и догадался, что это будет имя плагина. Затем я передал этот список имен плагинов и их имена diplay в параметры javascript для использования функцией jquery, чтобы узнать, может ли он найти любое из этих имен плагинов в любой из ссылок html или имен классов в меню администратора. Затем он добавил атрибут заголовка html для любых сопоставленных ссылок и отобразил его с помощью функции jQuery tooltip() .

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

Поэтому я задаюсь вопросом, есть ли что-то, что я упустил, это может быть способ более эффективно реализовать эту функциональность?

Спасибо за любую помощь / предложения.

Solutions Collecting From Web of "Предложения по подходу к новому плагину Я застрял"

Плагины генерируют пункты меню, вызывая add_management_page() . Здесь они вставляют пули, которые заканчиваются в меню. Обычно этот слизень такой же, как плагин, но это необязательно. Следовательно, ваш частичный результат, когда вы это пробовали. Вам нужно будет удалить все файлы плагинов, чтобы найти пули, как предлагал @Mark Kaplun.

Или вы можете переопределить add_management_page() . Убедитесь, что ваш плагин загружен как можно раньше (используйте add_action('muplugins_loaded', 'your_plugin_name',0); ), поэтому все другие плагины будут использовать вашу версию add_management_page() .

Используя debug_backtrace PHP, вы можете найти функцию, назвав вашу версию add_management_page() . Затем вы можете найти путь, в котором эта вызывающая функция возникает с помощью ReflectionFunction PHP. Затем вы сопоставляете путь со списком подключаемых get_plugins() используя get_plugins() . Это дает вам всю необходимую информацию для вашей подсказки.

Итак, это адская работа, и я, конечно, не пробовал.