Intereting Posts
WordPress Show Single Post на домашней странице с предыдущей / следующей кнопкой Простой текстовый редактор в текстовом виджете? как я могу скрыть какую-то категорию из панели администратора автора? meta_value и фильтрация meta_key, возвращающая сообщения Как сохранить несколько значений в 1 meta_key с помощью радиовхода? Сделать уникальное отображаемое имя Скрыть пользовательское значение метабокса из настраиваемых полей Термины таксономии с ссылкой edit / filter в wp-admin, в списке пользовательских сообщений Изменение постоянных ссылок для настраиваемого типа сообщений на основе таксономического термина Получение миниатюры в fetch_feed из настраиваемого поля Пользовательские шаблоны для сообщений, например, для страниц: page- {id} vs single- {id} Почему switch_to_blog перестает работать? Как добавить маршрут с помощью / blog только для страницы списка блога Убедитесь, что пользовательский тип сообщения уже создан Ограничить доступ к wp-login.php

Как я могу вызвать функцию из одного плагина внутри другого плагина?

У меня есть основной плагин на панели параметров admin для событий.

Я хочу вызвать функцию, которая из другого плагина в социальных сетях ( Mingle ). Я могу вызывать функции плагина в теме, но не внутри основных файлов других плагинов или других панелей администрирования плагинов.

Я пробовал, включая файлы других плагинов, добавляя крючок к файлу функций темы, add_action , add_filter , init и т. Д. Но я не знаю, каким будет первый аргумент для этих действий, так как я хочу, чтобы функция была вставлена ​​в конкретный админ страницу из другого плагина.

Единственное решение, которое сработало, – это слияние кода двух плагинов, хотя кажется странным, что нет более простого метода.

Solutions Collecting From Web of "Как я могу вызвать функцию из одного плагина внутри другого плагина?"

Возможно, вам стоит попробовать вызвать функции вашего плагина, используя действие plugins_loaded .

Плагин A

 class PluginA { public function func_a() { // do stuff } } 

Плагин B

 class PluginB { function functB() { if (class_exists('PluginA')) { //do stuff that depends of PluginA } } } add_action('plugins_loaded', 'call_plugin_a_using_plugin_b'); function call_plugin_a_using_plugin_b() { PluginB::functB(); } 

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

Чтобы вызвать одну функцию из одного плагина в другом плагине (начало?), Вы можете попробовать следующий логин:

Вы можете попробовать, проверив нужную функцию, прежде чем делать что-либо еще.

Плагин A:

 function from_plugin_alpha( some_thing ) { // do stuff } 

Плагин B:

 function from_plugin_bravo() { if ( !function_exists( 'from_plugin_alpha' ) ) { return; } from_plugin_alpha( some_thing ); } 

Это проверяет, существует ли функция перед выполнением вашего пользовательского кода.