Каков наилучший способ изменить плагин? Я часто хочу внести небольшие изменения в одну или две функции в большом плагине. Это легко сделать, но я должен использовать комментарии, чтобы пометить мои изменения и снова изменить плагин после обновления. В идеале я хотел бы оставить плагин в покое и вносить изменения в другом месте, так же, как мы делаем с темами и дочерними темами. Могу ли я создать плагин, который требует родительский плагин и будет переопределять его?
plugins
customization
Майк Уитон
источник
источник
Ответы:
ИМХО, лучший подход - это либо внедрить плагин, чтобы сохранить ваши изменения, либо отправить патчи разработчику плагина, чтобы ваши изменения стали частью исходного плагина.
Создать «Плагин для ребенка» действительно непросто. Понятие «Child Theme» действительно относится к файлам шаблонов , которые привыкают, в большей степени , чем функции Theme (и в самом деле,
functions.php
файл от обоих родителей и ребенка загружаются, что делает причиной проблем неправильно закодированныхfunctions.php
файлов либо ребенок или родитель Theme).источник
«Правильный» путь, очевидно, зависит от плагина. Некоторые плагины легче редактировать, чем другие, но большинство плагинов могут быть изменены другими плагинами.
Например, если в плагине есть функция, подключенная к WordPress с помощью действия, то вам просто нужно создать другой плагин, который отцепляет эту функцию с помощью remove_action, а затем добавляет вместо него функцию замены. Этот метод позволит вам заменить отдельные функции в плагинах вашими модифицированными версиями, без изменения исходного плагина.
Такая же концепция работает с фильтрами, очевидно.
источник
Лучшим способом было бы просто клонировать его, изменить имя плагина в заголовке и изменить имя каталога. Таким образом, вы также можете установить оригинал, но не активировать его, так что вы будете получать оповещения, когда будут выпущены обновления.
источник
Это относительно просто, если плагин находится под контролем исходного кода Git из-за распределенной природы Git, но многие плагины WordPress (и все они в официальном репозитории) находятся в Subversion. Я использую ветки вендоров и svn_load_dirs.php, если мне действительно нужно изменить плагин, но для этого требуется достаточно высокий уровень комфорта с Subversion.
Если плагин не предоставляет репозиторий, я бы рекомендовал превратить его в Git-репозиторий самостоятельно и вручную применить новые версии.
В конце концов, системы контроля версий - единственный разумный способ повторно применить изменения к новым версиям.
источник
Я согласен с ответом Анники Бакстрем , но хотел бы поделиться своим предпочтением.
Поскольку большинство плагинов находятся под svn, я использую инструмент под названием git-svn, чтобы создать зеркало git.
Затем я просто делаю ветку и фиксирую свои изменения там.
Когда плагин обновляется в апстриме, я просто извлекаю из репозитория svn и сливаюсь в свою собственную ветку.
источник