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

4 сент. 2013 г., 04:47:15
Просмотры: 19.2K
Голосов: 22

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

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

1
Комментарии

К вашему сведению, есть тикет по этой самой теме http://core.trac.wordpress.org/ticket/22316

Norcross Norcross
9 сент. 2013 г. 00:19:46
Все ответы на вопрос 1
0
22

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

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

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

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

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

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

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

4 сент. 2013 г. 05:52:45