Jaki jest najlepszy sposób modyfikacji wtyczki? Często chcę wprowadzać małe zmiany w jednej lub dwóch funkcjach w dużej wtyczce. Można to łatwo zrobić, ale muszę użyć komentarzy, aby zaznaczyć moje zmiany i ponownie zmodyfikować wtyczkę po aktualizacji. Idealnie chciałbym zostawić wtyczkę w spokoju i wprowadzić zmiany w innym miejscu, podobnie jak w przypadku motywów i motywów potomnych. Czy mogę utworzyć wtyczkę, która wymaga wtyczki nadrzędnej i ją zastąpi?
plugins
customization
Mike Wheaton
źródło
źródło
Odpowiedzi:
IMHO, najlepszym rozwiązaniem jest rozwidlenie wtyczki, aby zachować zmiany, lub przesłanie łat do programisty wtyczki, aby zmiany stały się częścią oryginalnej wtyczki.
Utworzenie „wtyczki podrzędnej” naprawdę nie jest łatwe. „Dziecko Motyw” koncepcji naprawdę odnosi się do plików szablonów , które przyzwyczaić, moreso niż funkcji tematu (aw rzeczywistości
functions.php
plik zarówno rodzice i dzieci są ładowane, co ma powodować problemy dla nieprawidłowo zakodowanychfunctions.php
plików w obu dziecka lub rodzica Motyw).źródło
„Właściwy” sposób zależy oczywiście od wtyczki. Niektóre wtyczki są łatwiejsze do edycji niż inne, ale większość wtyczek może być modyfikowana przez inne wtyczki.
Na przykład, jeśli wtyczka ma funkcję podpiętą do WordPressa za pomocą akcji, wtedy łatwo jest utworzyć inną wtyczkę, która odblokuje tę funkcję z remove activity, a następnie doda w zamian funkcję zastępczą. Ten rodzaj metody pozwoli ci zastąpić poszczególne funkcje wtyczek własnymi zmodyfikowanymi wersjami, bez modyfikowania oryginalnej wtyczki.
Oczywiście ta sama koncepcja działa z filtrami.
źródło
Najlepszym sposobem byłoby po prostu sklonowanie go i zmiana nazwy wtyczki w nagłówku oraz zmiana nazwy katalogu. W ten sposób można również zainstalować oryginał, ale go nie aktywować, aby nadal otrzymywać powiadomienia o wydaniu aktualizacji.
źródło
Jest to stosunkowo łatwe, jeśli wtyczka znajduje się pod kontrolą źródła Git ze względu na rozproszony charakter Git, ale wiele wtyczek WordPress (i wszystkie z oficjalnego repozytorium) jest w Subversion. Używam gałęzi dostawcy i svn_load_dirs.php, jeśli naprawdę muszę zmodyfikować wtyczkę, ale wymaga to dość wysokiego poziomu komfortu w Subversion.
Jeśli wtyczka nie ujawnia żadnego repozytorium, polecam samodzielne przekształcenie go w repozytorium Git i ręczne zastosowanie nowych wersji.
W końcu systemy kontroli wersji to jedyny rozsądny sposób ponownego zastosowania zmian w nowych wersjach.
źródło
Zgadzam się z odpowiedzią Anniki Backstrom , ale chciałbym podzielić się moim preferowanym rozwiązaniem.
Ponieważ większość wtyczek jest pod svn, używam narzędzia o nazwie git-svn, aby utworzyć lustro git.
Następnie tworzę gałąź i tam zatwierdzam zmiany.
Kiedy wtyczka jest aktualizowana w górę, po prostu ściągam z repozytorium svn i łączę się z moją niestandardową gałęzią.
źródło