Правильний спосіб зміни плагіна


15

Який найкращий спосіб змінити плагін? Я часто хочу вносити невеликі зміни в одну або дві функції у великому плагіні. Це легко зробити, але мені потрібно використовувати коментарі, щоб відмітити свої зміни та змінити плагін знову після оновлення. В ідеалі я хотів би залишити плагін у спокої та внести свої зміни в інше місце, як це робимо з темами та темами для дітей. Чи можу я зробити плагін, який потребує батьківського плагіна, і його буде замінено?


1
Поставте прапорець "Розширити без зміни" . Я вважаю це практично кращим рішенням. Перевірте це посилання для детальної інформації - Правильний спосіб налаштування плагіна WordPress
Eugine Joseph

Відповіді:


7

IMHO, найкращим підходом є або розблокувати Плагін для збереження змін, або ж подати патчі розробнику плагіну, щоб ваші зміни стали частиною оригінального плагіна.

Створити "дитячий плагін" насправді непросто. Концепція "Тема для дітей" дійсно стосується файлів шаблонів, які звикають, тим більше, ніж функції "Тема" (і насправді завантажуються functions.phpфайли як з "Батьків", так і з "Дочірки", що створює проблеми для неправильно закодованих functions.phpфайлів як у дочірніх, так і батьківських. Тема).


Типи змін, які я вношу, залежать від сайту, тому я не думаю, що розгортання або надсилання патчів було б доречним. Я обов'язково пам’ятаю про це для більш загальних удосконалень плагінів.
Майк Вітон

Але розщеплення - це те, що ви вже робите . В основному, це ваші варіанти: вилка або патч. @Chris_O дає хороший спосіб мати можливість автоматичного оновлення з верхнього потоку, зберігаючи свій роздвоєний плагін.
Чіп Беннетт

7

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

Наприклад, якщо плагін має функцію, підключену до WordPress з дією, то для вас просто справа, щоб зробити інший плагін, який розблоковує цю функцію з видаленням запуска, а потім замість цього додає вашу функцію заміни. Цей спосіб дозволить замінити окремі функції в плагінах власними модифікованими версіями, не змінюючи оригінальний плагін.

Очевидно, ця концепція працює і з фільтрами.


4

Найкращим способом було б просто його клонувати та змінити ім'я плагіна у заголовку та змінити ім’я каталогу. Таким чином, у вас також може бути встановлений оригінал, але він не активований, тому ви все одно отримуватимете сповіщення, коли з'явиться оновлення.

<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>

Це все ще потребує перегляду нових версій плагіна, щоб знайти зміни (я думаю, допоможе інструмент порівняння версій), а потім скопіювати ці зміни у мій користувацький плагін. Я припускаю, що я можу завантажити плагін і використовувати SVN для об'єднання змін зі своєю власною версією.
Майк Вітон

2
Існує пряме посилання на файл diff на посилання журналу розвитку на сторінці плагінів. Наприклад, тут
розроблено

3

Це порівняно просто, якщо плагін знаходиться під контролем джерела Git через розподіленого характеру Git, але багато плагінів WordPress (і всі ті, що знаходяться в офіційному сховищі) знаходяться в Subversion. Я використовую гілки постачальників і svn_load_dirs.php, якщо мені дійсно потрібно змінити плагін, але для цього потрібен досить високий рівень комфорту з Subversion.

Якщо плагін не містить сховища, я рекомендую самостійно перетворити його у сховище Git та застосувати нові версії вручну.

Зрештою, системи управління версіями - єдиний розумний спосіб повторно застосувати зміни до нових версій версії.


3

я погоджуюсь з Аніки Бекстром , але я хотів би поділитися своїм кращим рішенням.

Оскільки більшість плагінів знаходяться під svn, я використовую інструмент під назвою git-svn, щоб зробити дзеркало git.

Тоді я просто роблю філію і здійснюю там свої зміни.

Коли плагін оновлюється вище за течією, я просто витягую з svn repo та зливаюся у свою власну гілку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.