Создание плагина с зависимостями

21

Я пытаюсь расширить функциональность другого плагина. Мне нужно получить данные из него в массив, чтобы использовать его по-другому, чем оригинальный плагин. (В данном случае плагины WPMUDev для категорий и списков). Есть ли что-то в Кодексе? Как я могу создать плагин, который может использовать другие функции плагинов? Могу ли я расширить их и построить функции родительских узлов? Я не уверен, что эти плагины используют классы или просто прямые функции.

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

DWils
источник
4
FWIW есть трек-билет по этой самой теме core.trac.wordpress.org/ticket/22316
Норкросс,

Ответы:

22

Да, возможно создать плагин, который расширяет другой плагин. Вот несколько идей о том, как вы можете это сделать:

  1. Плагин может создавать свои собственные действия и фильтр крюки ( с использованием do_actionи apply_filterфункцию) так же , как ядро WordPress делает. Если плагин, на который вы нацелены, делает это, вы можете использовать эти хуки для изменения функциональности.

  2. Если плагин использует объектно-ориентированную структуру, вы можете расширить классы и использовать оригинальный плагин.

  3. Вы можете прочитать данные, хранящиеся в базе данных, исходным плагином и использовать их в коде вашего плагина.

  4. Вы можете вызывать любую функцию из исходного плагина, которая вам нравится, после того, как вы проверите, что плагин активен и загружен (см. Ниже). Просто помните о любых эффектах, которые может иметь функция, кроме возвращаемого значения.

Вам нужно проверить, активирован ли этот оригинальный плагин. Вы можете использовать is_plugin_activeфункцию; однако это работает только на страницах администратора. Кроме того, вы можете использовать function_existsили, class_existsчтобы проверить, доступна ли конкретная функция или класс из исходного плагина, который сообщит вам, что он запущен.

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

Бен Миллер - Восстановить Монику
источник