Warum?
Manchmal kann eine einfache Lösung zum Ändern des Verhaltens von WordPress selbst oder eines Plugins darin bestehen, die Dateien des Plugins oder von WordPress direkt zu ändern. Wenn Sie auf eine solche Idee kommen, lautet die übliche Antwort:
Hacke nicht den Kern.
Warum ist es im Allgemeinen eine schlechte Idee, Kerndateien zu ändern?
Erwägen?
Manchmal ist es jedoch einfach unmöglich, Dinge zu tun, die für eine Site kritisch sein können, ohne die Kerndateien zu ändern. Was müssen Sie in einer solchen Situation beachten, bevor Sie mit dem Hacken von Core beginnen?
Wie?
Sie haben alle Optionen in Betracht gezogen, aber die einzige Lösung ist das Hacken von Kerndateien. Wie solltest du das machen? Wie wird ein veränderter Kern die Arbeitsabläufe beeinflussen, wie z. B. das Aktualisieren?
admin_body_class
undadmin_footer
das bedeutet, dass die gesamte Seite erfasst wird . Ich habe es gerade ausprobiert und es gibt> 2 MB Inhalt, der nach dem relevanten Abschnitt durchsucht, dann analysiert und vor der Ausgabe geändert werden muss. Oder ich kann eine Codezeile in den rechten Teil von einfügenmy-sites.php
und ein Diff-Tool verwenden, um den Patch nach dem Update anzuwenden (vorausgesetzt, er wurde überhaupt geändert). In solchen Szenarien ist es wirklich schwierig, eine Änderung des Kerns abzulehnen.Antworten:
Wenn Sie Core hacken müssen , erwägen Sie, dies auf eine Weise zu tun, die es für andere erweiterbar macht.
Fügen Sie einen Aktions-Hook hinzu
In neun von zehn Fällen könnten Sie tun, was Sie wollten, wenn
do_action
in einer bestimmten Datei nur ein zusätzlicher Anruf vorhanden wäre. Fügen Sie in diesem Fall die Aktion hinzu, dokumentieren Sie sie und senden Sie einen Patch über Trac . Wenn es einen guten Grund für Ihren Patch gibt (dh Sie sind nicht der einzige, der ihn jemals verwenden würde), können Sie ihn wahrscheinlich zum Core hinzufügen.Erstellen Sie als Nächstes ein benutzerdefiniertes Plug-In (Sie müssen es nicht freigeben / verteilen!), Das mit diesem neuen Hook verknüpft ist und die Funktionen ausführt, die Sie benötigen.
Refactor einer Core-Datei
In anderen Fällen benötigen Sie möglicherweise nur einen Code, um sich anders zu verhalten. Übergeben Sie beispielsweise eine Variable als Referenz, oder geben Sie einen Wert zurück, anstatt ihn zurückzugeben. Nehmen Sie sich etwas Zeit, setzen Sie sich und überarbeiten Sie den Code, damit er das tut, was Sie tun müssen. Senden Sie dann einen Patch über Trac, damit der Rest von uns von Ihrer Arbeit profitieren kann.
Sehen Sie hier ein Thema? Hacking Core ist nicht unbedingt ein No-No. Nur etwas, von dem die meisten Entwickler neue Benutzer oder Programmieranfänger dringend abraten (wenn Sie uns fragen, wie etwas zu tun ist, schlagen wir jedes Mal vor, ein Plug-In zu installieren in Erwägung zu ziehen, Ihnen einen Hack-Core vorzuschlagen).
Der Hacking-Kern ist die Art und Weise, wie WordPress entwickelt und weiterentwickelt wird, aber es ist gefährlich für jemanden, der nur PHP lernt oder keine Erfahrung mit WP-Dateien hat. Beginnen Sie mit einem Plug-In, bevor Sie Core berühren. Wenn Sie ein Plug-In beschädigen, können Sie es schnell deinstallieren (ggf. per FTP entfernen) Datenbank als auch.
Wenn Sie sich jedoch in einer Situation befinden, in der ein Core-Hack unvermeidbar ist, nehmen Sie die Änderung vor. Veröffentlichen Sie Ihre Änderung auch an einer prominenten Stelle (wenn Ihr Blog gut sichtbar ist, ist dies möglicherweise ausreichend ... Ich empfehle Trac, da auf diese Weise Community-Änderungen in die nächste Version übernommen werden). Ihre Änderung könnte die magische Kugel sein, die Probleme an hundert verschiedenen Standorten beheben könnte. Tragen Sie also zur Community bei, die Sie beim Aufbau Ihrer Website unterstützt hat.
Wenn die Änderung festgeschrieben wird, wird Ihr Hack Teil des Kerns und Sie müssen sich in Zukunft keine Gedanken mehr darüber machen. Ist dies nicht der Fall, verfügen Sie zumindest über eine detaillierte Dokumentation zur erneuten Implementierung des Hacks nach dem Upgrade von WP in 3 Monaten.
quelle
Das liegt daran, dass es ein Vorschlag für unerfahrene Benutzer der ersten Ebene ist. Diejenigen, die den Kern hacken, würden ihre Installation unterbrechen, sie können nicht sicherstellen, dass ihre Änderungen ein Update usw. beibehalten.
Sicher, Sie können Core tatsächlich hacken, indem Sie beispielsweise ein Versionsverwaltungssystem wie SVN verwenden. Es hilft Ihnen dabei, Ihre eigenen Änderungen am Kerncode mit den Projektaktualisierungen in Einklang zu bringen. Es ist auch hilfreich, Patches für Wordpress zu erstellen und an das Projekt zu senden.
Der Hacking-Kern sorgt dafür, dass sich Wordpress weiterentwickelt.
Überlegungen
Wenn Sie keinen vollständigen SVN installieren möchten und dennoch wissen, welche (einige) Dateien Sie geändert haben, können Sie einfachere Tools wie Diff / Merge (für win: WinMerge ) oder Editoren mit Vergleichsfunktionen (z. B. Notepad ++ mit Compare Plugin ). Unter Linux können Sie problemlos Befehlszeilenprogramme installieren, die dasselbe tun. Der Geany-Editor kommt übrigens mit einer schönen Shell-Integration. .
Ich bevorzuge Eclipse PDT für die harten Jobs. Aber das ist nicht für das schnelle Bearbeiten oder Hacken.
Also würde ich sagen, wenn Sie die richtigen Tools verwenden und darauf achten möchten, dass der Kern gehackt wird, ist der richtige Weg. Wenn Sie etwas zusammen hacken, das auf einem anderen Noob-Benutzerserver übrig geblieben ist (Wordpress ist ziemlich beliebt), stellen Sie einfach ein Plugin zur Verfügung, das einfach gelöscht werden kann, wenn etwas kaputt geht.
quelle
Die Probleme sind:
Wenn Sie dies tun möchten, machen Sie es sich leichter:
// PATCH START
und// PATCH END
)Manchmal ist dies zu 100% unvermeidlich, aber ich kann mir fast immer einen anderen Weg einfallen lassen, um Dinge zu erreichen oder die Spezifikationen zu ändern, da dies wahrscheinlich zu lange dauert. Es ist nur ein Wartungs-Albtraum, und viele Leute entscheiden sich für das Hacken des Kerns, anstatt nach der richtigen Lösung zu suchen.
quelle