Czemu?
Czasami łatwym rozwiązaniem zmiany zachowania samego WordPressa lub wtyczki może być bezpośrednia zmiana plików wtyczki lub WordPressa. Kiedy pojawia się taki pomysł, zwykle odpowiada:
Nie rąbaj rdzenia.
Dlaczego zmiana podstawowych plików jest na ogół złym pomysłem?
Rozważać?
Czasami jednak rzeczy, które mogą mieć krytyczne znaczenie dla witryny, są po prostu niemożliwe do zrobienia, w przyjemny sposób bez zmiany podstawowych plików. W takiej sytuacji, o czym musisz wiedzieć, zanim zaczniesz hakować rdzeń?
W jaki sposób?
Rozważyłeś wszystkie opcje, ale jedynym rozwiązaniem jest włamanie się do podstawowych plików. Jak powinieneś to zrobić? W jaki sposób zmieniony rdzeń wpłynie na przepływy pracy, takie jak aktualizacja?
admin_body_class
iadmin_footer
co oznacza przechwycenie całej strony . Właśnie próbowałem i jest> 2 MB treści, które należy wyszukać w odpowiedniej sekcji, a następnie przeanalizować i zmodyfikować przed wydrukowaniem. Lub mogę dodać jeden wiersz kodu do prawej częścimy-sites.php
i użyć narzędzia różnicowego, aby zastosować łatkę po aktualizacji (zakładając, że w ogóle została zmodyfikowana). Naprawdę trudno jest uzasadnić modyfikację rdzenia w takich scenariuszach.Odpowiedzi:
Jeśli musisz zhakować rdzeń, zastanów się nad tym w sposób umożliwiający jego rozszerzenie na innych.
Dodaj zaczep akcji
Dziewięć razy na dziesięć możesz zrobić to, co chcesz, jeśli tylko
do_action
w określonym pliku znajduje się dodatkowe wywołanie. W takim przypadku dodaj akcję, udokumentuj ją i prześlij łatę przez Trac . Jeśli istnieje dobry powód dla twojej łatki (tj. Nie jesteś jedynym, który kiedykolwiek z niej skorzystałby), prawdopodobnie możesz ją dodać do rdzenia.Następnie zbuduj niestandardową wtyczkę (nie musisz jej zwalniać / rozpowszechniać!), Która łączy się z tym nowym hakiem i wykonuje dowolną funkcję, którą potrzebujesz.
Refaktoryzacja pliku podstawowego
Innym razem możesz potrzebować fragmentu kodu, aby zachowywać się inaczej. Przekaż zmienną na przykład przez odwołanie lub zwróć wartość, a nie ją wyświetlaj. Poświęć trochę czasu, aby usiąść i zmienić kod, aby zrobił to, czego potrzebujesz ... a następnie prześlij łatkę za pośrednictwem Traca, aby reszta z nas mogła skorzystać z Twojej pracy.
Czy widzisz tutaj motyw rozwijający się? Hakowanie rdzenia niekoniecznie jest nie-nie ... po prostu coś, co większość programistów odradza nowym użytkownikom lub początkującym programistom (jeśli pytasz nas, jak coś zrobić, za każdym razem sugerujemy wtyczkę rozważając zasugerowanie hakowania rdzenia).
Rdzeń hakerski to sposób, w jaki WordPress rozwija się i ewoluuje, ale jest niebezpieczny dla kogoś, kto dopiero uczy się PHP lub nie ma doświadczenia w pracy z plikami WP. Przed dotknięciem rdzenia zacznij od wtyczki - jeśli złamiesz wtyczkę, możesz ją szybko odinstalować (w razie potrzeby usunąć przez FTP) ... ale jeśli złamiesz rdzeń, na twojej stronie i potencjalnie na twojej stronie mogą wystąpić złe rzeczy baza danych.
Ale jeśli znajdujesz się w sytuacji, gdy hack rdzeniowy jest nieunikniony, dokonaj zmiany. Opublikuj również swoją zmianę w widocznym miejscu (jeśli twój blog jest bardzo widoczny, może to wystarczyć ... ale sugeruję Tracowi, ponieważ w ten sposób zmiany społeczności są wprowadzane do następnej wersji). Twoja zmiana może być magiczną kulą, która może rozwiązać problemy w setkach różnych witryn ... więc wróć do społeczności, która pomogła Ci zbudować witrynę.
Jeśli zmiana zostanie zatwierdzona, twój hack stanie się częścią rdzenia i nie będziesz musiał się tym martwić w przyszłości. Jeśli tak się nie stanie, przynajmniej masz szczegółową dokumentację na temat tego, jak ponownie wdrożyć hack po aktualizacji WP w ciągu 3 miesięcy.
źródło
To dlatego, że jest to sugestia dla niedoświadczonych użytkowników pierwszego poziomu. Te hakujące jądro zepsują ich instalację, nie mogą zapewnić, że ich zmiany utrzymają aktualizację itp.
Na pewno możesz włamać się do rdzenia, na przykład za pomocą systemu zarządzania wersjami, takiego jak SVN. Pomaga utrzymać własne zmiany w podstawowym kodzie zgodnie z aktualizacjami projektu. Pomaga również tworzyć łatki dla Wordpress i wysyłać je do projektu.
Rdzeń hakerski jest niezmienny, dzięki czemu Wordpress ewoluuje.
Uwagi
Jeśli nie chcesz instalować pełnej SVN i nadal wiesz, które (niektóre) pliki zmieniłeś, możesz użyć większej liczby narzędzi niskiego poziomu, takich jak Diff / Merge (dla win: WinMerge ) lub edytorów o porównywalnych możliwościach (np. Notepad ++ with Compare Plugin ). W systemie Linux można łatwo zainstalować narzędzia wiersza polecenia, które robią to samo. Edytora Geany pochodzi z ładnym integracji powłoki btw. .
Wolę Eclipse PDT do trudnych zadań. Ale to nie jest do szybkiej edycji lub hackowania.
Powiedziałbym więc, że jeśli używasz odpowiednich narzędzi i chcesz zachować ostrożność, włamanie się do rdzenia jest dobrym rozwiązaniem. Jeśli hakujesz coś, co zostało na serwerze innych użytkowników Noob (tak, Wordpress jest dość popularny), po prostu zapewnij wtyczkę, którą można łatwo wyrzucić, jeśli coś zepsuje.
źródło
Problemami są:
Jeśli chcesz to zrobić, ułatw sobie życie:
// PATCH START
i// PATCH END
)Czasami jest to w 100% nieuniknione, ale prawie zawsze mogę wymyślić inny sposób na osiągnięcie rzeczy lub zmianę specyfikacji ze względu na prawdopodobny koszt czasu spędzonego na tym. To tylko koszmar konserwacji, a wiele osób wybiera rdzeń hakerski, zamiast szukać odpowiedniego rozwiązania.
źródło