Я пытаюсь расширить функциональность другого плагина. Мне нужно получить данные из него в массив, чтобы использовать его по-другому, чем оригинальный плагин. (В данном случае плагины WPMUDev для категорий и списков). Есть ли что-то в Кодексе? Как я могу создать плагин, который может использовать другие функции плагинов? Могу ли я расширить их и построить функции родительских узлов? Я не уверен, что эти плагины используют классы или просто прямые функции.
Я просто пытаюсь получить данные из плагина в виджет боковой панели (в элементе формы), но в конечном итоге я буду использовать это и для области содержимого с помощью пользовательских шорткодов. Сейчас мне просто нужно место, чтобы начать.
Ответы:
Да, возможно создать плагин, который расширяет другой плагин. Вот несколько идей о том, как вы можете это сделать:
Плагин может создавать свои собственные действия и фильтр крюки ( с использованием
do_action
иapply_filter
функцию) так же , как ядро WordPress делает. Если плагин, на который вы нацелены, делает это, вы можете использовать эти хуки для изменения функциональности.Если плагин использует объектно-ориентированную структуру, вы можете расширить классы и использовать оригинальный плагин.
Вы можете прочитать данные, хранящиеся в базе данных, исходным плагином и использовать их в коде вашего плагина.
Вы можете вызывать любую функцию из исходного плагина, которая вам нравится, после того, как вы проверите, что плагин активен и загружен (см. Ниже). Просто помните о любых эффектах, которые может иметь функция, кроме возвращаемого значения.
Вам нужно проверить, активирован ли этот оригинальный плагин. Вы можете использовать
is_plugin_active
функцию; однако это работает только на страницах администратора. Кроме того, вы можете использоватьfunction_exists
или,class_exists
чтобы проверить, доступна ли конкретная функция или класс из исходного плагина, который сообщит вам, что он запущен.Помните, что каждый раз, когда оригинальный плагин обновляется, вам нужно протестировать ваш плагин с новой версией, чтобы найти что-то новое, что может конфликтовать с вашим плагином.
источник