Я разрабатываю пару плагинов с открытым исходным кодом и тему (все это часть «комплекта»), которые все используют одну и ту же стороннюю библиотеку PHP. Мне интересно, как лучше всего включить его в Wordpress. Вот несколько мыслей:
- поместите его в один из плагинов и потребуйте, чтобы плагин был установлен и активирован
- создать специальный «основной» плагин, который ничего не делает, кроме него
- положить прямо в
wp-content
Есть мысли на этот счет?
Ответы:
Если каждый плагин / тема функционирует сам по себе, то вам, вероятно, следует удалить библиотеку в каждой теме / плагине.
Затем просто проверьте, существует ли класс или функция из сторонней библиотеки, прежде чем требовать этого.
или
Кроме того, вы можете обернуть каждую функцию / класс / переменную / константу из сторонней библиотеки в проверку, чтобы увидеть, существует ли она, например, подключаемые функции .
Если все плагины и тема зависят друг от друга, то разделять их не имеет особого смысла, и вам, вероятно, следует переосмыслить это.
источник
library
папку в каждом плагине / теме. Затем в вашем основном файле плагина запустите проверку и включите их при необходимости.Привязать весь зависимый код к действию в плагине библиотеки.
Пример кода для библиотечного плагина:
В вашем зависимом коде ничего не делайте до вызова действия:
Библиотека обрабатывает все основные части: проверяет правильность версии PHP, константы WordPress, настройки нескольких сайтов и т. Д.
Другой код ничего не сделает, если действие
'library_loaded'
не вызывается.источник
Помимо ответа chrisguitarguy, если ваши библиотеки представлены в виде классов PHP, вы можете использовать spl_autoload_register () для загрузки этих классов, если они еще не были загружены другим плагином. Затем вы можете связать библиотеки в свой плагин и просто использовать их, полагаясь на загрузчик классов, чтобы включить их при необходимости. Вы также можете использовать загрузчик классов для загрузки классов вашего собственного плагина.
например
источник
Поскольку официального каталога поставщиков не существует , я бы выбрал «основной» плагин, который не делает ничего, кроме библиотеки. Вы тогда заставляете свои плагины требовать того основного плагина.
Помещение библиотеки в один из ваших реальных плагинов потребует от пользователя включения этого плагина, даже если он никогда не захочет использовать его функциональность. Отдельный основной плагин кажется чище.
Помещение его непосредственно в wp-контент выглядит как худшее решение.
источник