Intereting Posts
Как изменить имя отправителя электронной почты с wordpress на (myblogname) в электронной почте «потерянный пароль»? Условия категории «Sitewide» Лучший способ исключить вывод категории для сообщений / страниц? Пользовательский запрос WP из meta_value, хранящийся в виде сериализованного массива Редактирование массива / списка в Backend Как добавить пользовательскую таксономию в плагин Woocommerce Изменение фактической (или видимой) структуры каталога WordPress Как иметь дело с переменной GET 'name'? Включить поиск WordPress на основе запроса? S = <запрос> Как связать персонализированный тип сообщения с другим посредством таксономии или хранения идентификатора в настраиваемом поле? Управление имитатором темы Пользовательский запрос ПОСЛЕ rss fetch_feed не работает Multisite: настройка темы и параметров при создании нового блога Как экспортировать весь контент с помощью изображений функций? URL-адрес и теги ссылок возвращают ошибку 404

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

У меня есть основной плагин на панели параметров 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 ); } 

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