elektro:elch

Es ist nicht ungefährlich, wenn ein Volk lesen und schreiben kann.

WordPress: Aufregen über schlecht programmierte Plugins

Neulich stolperte ich über ein Plugin, das einen wirklichen Mehrwert liefert, aber leider so miserabel programmiert ist, dass ich niemanden mit gutem Gewissen den Einsatz empfehlen kann. Obwohl es schon eine größere Anzahl von “You’re doing it wrong”-Blogartikeln gibt, muss ich einfach einen weiteren Artikel darüber schreiben, da dieses nicht näher benannte Plugin so viele Dinge gleichzeitig falsch macht.

Tabellen in der Datenbank erstellen

WordPress liefert die notwendigen Tabellen und, noch besser, alle notwendigen Funktionen, um Daten in der Datenbank zu speichern. Es gibt zum Beispiel wp_postmeta um Daten zu speichern, die mit einem Artikel zusammenhängen oder wp_usermeta für Daten in Zusammenhang mit einem Benutzer.
Um allgemeine Daten des Plugins zu speichern sollte man die Tabelle wp_options nutzen. Man muss nicht einmal für jeden Wert einen gesonderten Datensatz erstellen, sondern man kann die Daten in einem Array zusammenfassen, mit serialize() serialisieren und in einem einzelnen Datensatz speichern.
(Edit: Schon seit der Version 2.0.1 ist es nicht mehr notwendig, die Daten selber zu serialisieren, da die update-* -Funktionen das automatisch machen.)
Wie man sieht, ist es also gar nicht notwendig, eigene Tabellen oder SQL-Anweisungen erstellen.

Ständig neue Daten anfordern

Man muss Daten von externen Quellen nicht ständig erneuern, denn es ist sehr wahrscheinlich, dass sich die Daten über einen längeren Zeitraum nicht ändern. Mit einigen durchdachten WordPress-Funktionen kann man die Daten zwischenspeichern, indem man die “Transient API” nutzt. Sie stellt Funktionen bereit, um Daten temporär zu speichern (set_transient), abzurufen (get_transient) und noch weitere, um temporäre Daten zu verwalten.

Das Rad neu erfinden

WordPress enthält eine Fülle an Funktionen, insbesondere für das Zusammenspiel mit der Datenbank. Bevor man also anfängt, eigene Datenbankroutinen zu schreiben, sollte man sich die Klasse $wpdb ansehen, die alles enthält um mit der Datenbank zu interagieren, desweiteren add_user_meta, add_post_meta und andere hilfreiche Funktionen um Daten zu speichern, zu ändern und zu löschen. Man sollte sich diese Funktionen ansehen, bevor man auch nur einen Gedanken daran verschwendet, eigene SQL-Statements zu erstellen. Neben der einfachen Verwendung ist man auf der sicheren Seite auch wenn sich das Datenbank-Design drastisch ändern sollte.

Nach mir die Sintflut

Selbst wenn dein Plugin die beste Erfindung seit geschnitten Brot sein mag und jeder es einsetzen sollte, wird es Nutzer geben, die der Meinung sind, dass es etwas Besseres gibt und es deinstallieren wollen. Man sollte deshalb darauf achten, dass man bei der Deinstallation alle Spuren des Plugins löscht. Bei der Deinstalltion, nicht bei der Deaktivierung, denn es kann durchaus passieren, das ein Benutzer das Plugin deaktiviert, um das Blog zu debuggen und anschließend sehr glücklich ist, dass die Einstellungen noch vorhanden sind.

Es gibt noch viele andere Sachen die man beim Programmieren eines Plugins falsch machen kann und ich hoffe sehr, dass @nacin irgendwann ein Blog zu dem Thema eröffnet.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *