it-swarm.com.de

Was sind einige Gründe, warum Sie WordPress-Kerndateien nicht hacken sollten?

Oft kann eine schnelle Lösung eines Problems, kann, durch Hacken des WordPress-Kerns erreicht werden, indem der Code, der WordPress selbst ist, geändert wird.

Dies ist ein sehr gefährlicher Weg! Tu es niemals!


Sie können die Funktionsweise von WordPress jederzeit mithilfe von Plugins ändern. Dies kann manchmal ziemlich mühsam und schwierig sein, aber die zusätzliche Arbeit überwiegt immer die Probleme, die Sie durch das Ändern des WordPress-Kerns selbst bekommen.

Einige würden sagen, dass es Situationen geben kann, in denen das Hacken des Kerns die einzige Lösung ist, aber wenn Sie hier Fragen stellen, befinden Sie sich definitiv nicht in dieser Situation .

Diese Frage soll eine Einführung in eine kollektive Arbeit darüber sein, warum Sie niemals den WordPress-Kern hacken sollten, den wir als Referenz verwenden können. Wenn Sie etwas hinzufügen möchten, können Sie es gerne als Frage hinzufügen.

8
googletorp

Der beste Grund, Core nicht zu hacken, ist, dass alles, was Sie tun, stattdessen als Patch für Core überarbeitet werden sollte!

Offensichtlich würde ALLER Code überhaupt keinen guten Patch ergeben, oder zumindest selten. Stattdessen müssen Sie herausfinden, welcher Hook (Aktion oder Filter) im Core fehlt, mit dem Sie tun können, was Sie tun müssen, ohne den Core zu hacken. Wir müssen den Kern nicht hacken, wenn es angemessene Filter/Aktionen gibt. Wenn wir also herausfinden, was der fehlende Haken ist, müssen wir den Kern nicht hacken.

Dies kann oft schwierige Problemlösungen und knifflige Beinarbeit erfordern, aber meistens stellen Sie nicht fest, dass es bereits einen Haken gibt, mit dem Sie Ihr Problem lösen können , sodass Sie den Kern nicht hacken müssen!

In dem seltenen Szenario, in dem es wirklich keinen Hook gibt, müssen Sie nur im Trac erklären, warum Ihr Hook existieren muss. Wenn Sie Ihren neuen Hook festgeschrieben bekommen, haben Sie einen temporären 1-Zeilen-Hack-to-Core, über den Sie sich beim nächsten Update keine Sorgen machen müssen.

Selbst wenn Sie es nicht schaffen, etwas im Core-Trac zu erledigen (es braucht etwas Überzeugendes, um etwas zu tun), haben Sie Ihren Core-Hack auf ein Minimum reduziert: 1 Codezeile für Ihre Aktion/Ihren Filter. Wenn Sie WP aktualisieren, haben Sie jetzt den gesamten Code, den Sie in den Core verschoben haben, durch eine Zeile ersetzt, die aktualisiert werden muss, und Ihr Plugin kann unverändert bleiben!

6
jerclarke

Ich glaube das, direkt aus WordPress Codex , sagt alles:

Photo: Don't Hack WordPress Core; Or the Kitten Get's it!

:)

3
MikeSchinkel

Es gibt auch die Tatsache, dass alle Ihre Änderungen an den Kerndateien überschrieben werden, sobald Sie WordPress auf die neueste Version aktualisieren

3
Tom J Nowell

Diese Warnung ist viel älter, als es bei dezentralen Versionskontrollsystemen wie Git der Fall war. Um den Kern zu hacken, mussten Sie Ihre Änderungen in einer Reihe eigener Patches aufbewahren. Da einige (meist unerfahrene Entwickler, die mit Wordpress experimentierten) keine Patches machten, um den Überblick über ihre Änderungen zu behalten, stießen sie auf ein Problem: Am Ende hatten sie Probleme, Worpdress auf die neue Version zu aktualisieren, und der Spruch war geboren.

Die Warnung war mehr oder weniger ein kultureller Seitenverweis auf das "Jedes Mal, wenn du masturbierst ... tötet Gott ein Kätzchen" Bildunterschrift und offensichtlich als Spaß gedacht. Es wurde jedoch die Analogie zwischen "Hacken von WordPress-Kern" und "Masturbieren" angesprochen. Dies hat wahrscheinlich zu einiger Popularität geführt.

Sicher, Hacking Core ist ein zweiseitiges Schwert, und ich denke, das ist der Grund, warum Sie gefragt haben.

Erstens ist es absolut gültig, möglich und machbar sowohl in der Vergangenheit als auch in der Gegenwart, den Kern zu hacken. In der Vergangenheit mit Patch-Sets und heute noch einfacher mit git und dem git repo von Wordpress, das auf Github öffentlich verfügbar ist .

Anstatt den Benutzern zu sagen (die vielleicht nicht einmal verstehen, worum es geht), dass sie dumm sind, indem sie Witze über sie machen, ist es besser, sie zu ermutigen und sie zu erziehen.

Auch und dies ist eine der eher dunklen Seiten in der Wordpress-Geschichte, für die die Wordpress-Community hier nicht gut wirbt. Auch wenn es die Benutzer irgendwie ermutigt, Änderungen in das ursprüngliche Code-Repository zu übernehmen, was normalerweise eine gute Sache ist, hat Wordpress dies nicht für die Bibliotheken getan, die sie aus den Quellen des Upstreams in ihren Baum übernommen haben. Behalten Sie also diese Redewendungen bei, es ist nichts, was Wordpress lead und core Entwicklern für den Code befolgt hat, den sie auch von anderen übernommen haben.

Wenn man sich also das Sprichwort an den Händen der Entwickler ansieht, ist es nur ein Scherz, es ist nur eine vulgäre kulturelle Referenz.

Der beste Vorschlag, den ich machen kann, ist, wenn Sie ein Entwickler sind und Änderungen am Core vornehmen möchten, tun Sie es. Tun Sie es so, wie es Ihnen gefällt Sie andere nicht. Wordpress ist aus einem bestimmten Grund freie Software und Sie sollten stolz darauf sein und wissen, was Sie damit machen. Öffentlich oder privat. Wenn Sie nach Möglichkeiten suchen, dies praktikabler zu gestalten, erstellen Sie einen Workflow, wie Sie es auch tun würden, wenn Sie andere Arten von Entwicklungsarbeiten ausführen.

1
hakre

Es gab dreieinhalb Mal, dass ich Core hacken musste, um ein Problem zu lösen.

1) War ein Bugfix. Ich habe es als Fehler in Trac zusammen mit einem Diff-Patch gemeldet. Die Funktionalität wird bereits in der nächsten Version von WP überarbeitet, wodurch der Fehler im Grunde genommen ungültig wird. Bis dahin kann ich den Patch, den ich erstellt habe, problemlos auf aktuelle/neue Installationen anwenden.

2) Es sollte eine sehr detaillierte Protokollierung hinzugefügt werden, um zu versuchen, ein ganz bestimmtes Problem aufzuspüren, auf das ein Benutzer gestoßen ist. Keine alltägliche Situation und schon gar nicht funktional.

3a) Ich wollte Kategorien in WP 2.8.5 ein zusätzliches Feld hinzufügen. Die dafür eingebauten Hooks funktionierten nicht richtig (bekanntes Problem), und ich glaube, dieses spezielle Problem wurde im 2.9-Baum behoben. Letztendlich war die Implementierung fehlerhaft und wir haben das Feature neu gestaltet, damit es auf eine andere Art und Weise funktioniert, ohne dass eine Kernmodifikation erforderlich ist.

3b) Ich dachte, ich müsste den Kern modifizieren, um die Links zur Kommentarmoderation zu ändern, aber während ich herumgrub, fand ich einige Haken, die ich vorher nicht kannte und die in der Lage waren, die Funktion als Plugin zu implementieren.

1
gabrielk