tom
  • 0
Учитель

Как лучше включать плагины в тему?

  • 0

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

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

Как лучше всего включать плагины как часть темы?

Share
  1. Если вы планируете выпускать их независимо друг от друга, то выпускайте их независимо и попытайтесь разместить их обоих в репозитории WP. Это позволит вам обновлять системы удаленно и поддерживать людей, использующих самую современную систему.

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

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

    В качестве альтернативы, если вы знаете, что определенный плагин не будет меняться в течение очень долгого времени (я использую несколько плагинов, которые только добавляют/удаляют определенные фильтры WP), вы можете поместить PHP файл в /library каталог с вашей темой, а include() файл в functions.php . Затем эта функциональность включена по умолчанию — компромисс заключается в том, что теперь вы поддерживаете две версии плагина (как вы упомянули в своем исходном вопросе).

    • 0
  2. В основном у вас есть три возможных случая:

    • установлены и тема, и плагин;
    • установлена ​​только тема;
    • установлен только плагин.

    Примите во внимание, что с большей вероятностью будет обновлено:

    • плагин, размещенный в репозитории — скорее всего;
    • тема, размещенная в репозитории — скорее всего;
    • не размещенная в репозитории тема или плагин — маловероятно;
    • дочерняя тема — крайне маловероятно (не может быть размещена в репозитории, ручное слияние изменений, поскольку она предназначена для настройки конечным пользователем).

    Так что в целом рекомендуется сохранять код одинаковым (похожим, если не идентичным) и загружать его в тему условно, когда плагин отсутствует. Потому что сейчас плагины проще и чаще обновлять.

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

    Лучшей (но сложной практикой) является создание ваших расширений как контекстно-независимых (также известных как фреймворк) и использование пользовательского загрузчика для проверки версий и загрузки последних доступных. Для практического примера фреймворка см. scbFramework, который распространяется как отдельный плагин и используется во многих других плагинах.

    • 0

Оставить ответ

You must login to add an answer.