WordPress: So vermeidet ihr typische Fehler bei der Theme-Entwicklung
Bevor ihr direkt in die Theme-Entwicklung einsteigt, solltet ihr euch mit einigen wichtigen WordPress-Features vertraut machen. Denn auch wenn euer Code funktioniert, kann die Art und Weise, wie ihr ein Problem umgesetzt habt, unter WordPress ein Bad Practice sein. Die folgenden Punkte zeigen dir, ob du alles richtig gemacht hast.
CSS und Javascript richtig hinzufügen
Bei der Theme-Entwicklung kann es vorkommen, dass man CSS- oder Javascript-Code zu einer HTML-Seite hinzufügen möchte. Üblicherweise kann der gewünschte Code mit den dafür vorgesehenen Tags <style>
beziehungsweise <script>
ergänzt werden.
In WordPress gibt es jedoch eine deutlich bessere Alternative. Denn ihr habt Zugriff auf die beiden Funktionen wp_enqueue_style()
sowie wp_enqueue_script()
. Diese sollten an passender Stelle in eure functions.php
implementiert werden. WordPress fügt dann für euch die gewünschte Datei an passender Stelle hinzu. Außerdem behaltet ihr die Übersicht über eure hinzugefügten Styles und Scripts, denn diese lassen sich nun alle gesammelt in einer Datei wiederfinden.
Alle weiteren Antworten und Details zu den beiden Funktionen findet ihr hier im WordPress-Blog.
Keine absoluten Links innerhalb eurer Seite verwenden
Bei der Verwendung von Verlinkungen auf eurer Website sollte auf absolute Links verzichtet werden. Denn in eurem WordPress-Backend kann in den allgemeinen Einstellungen die URL zu der WordPress-Startseite festgelegt werden. Auf diese sollte immer zugegriffen werden, falls ihr eine neue Seite oder einen Beitrag innerhalb eurer Website öffnen wollt. Dadurch werden nicht nur Inkonsistenten verhindert, sondern es wird auch das einfache Ändern der Basis-URL ermöglicht. Diese muss dann lediglich in den WordPress-Einstellungen angepasst werden.
Hier als Beispiel eine falsche Verlinkung:
<a href="https://t3n.de">Startseite</a>
Die in den Einstellungen stehende URL kann über die Funktionen esc_url()
und home_url()
erreicht werden.
<a href="<?php echo esc_url(home_url()); ?>">Startseite</a>
Dies erzeugt dieselbe Ausgabe wie in dem ersten Beispiel. Aus diesem Grund können auch Unterseiten einfach mit angefügtem Slash erreicht werden.
<a href="<?php echo esc_url(home_url()); ?>/news">News</a>
Statt der Funktion home_url()
gibt es auch weitere Funktionen, mit denen ihr bestimmte Pfade in eurem WordPress-Projekt erreichen könnt:
get_template_directory_uri()
get_theme_root_uri()
get_stylesheet_directory_uri()
get_theme_file_uri()
content_url()
Fehlende Übersetzung
WordPress bietet die Möglichkeit, das Theme zu übersetzen. Wenn also Texte in Deutsch ausgegeben werden sollen, empfiehlt es sich, vorerst alle Inhalte in englischer Sprache zu verfassen und die Texte in den vorgesehenen POT-Dateien (Portable-Object-Template) in die gewünschte Sprache zu übersetzen.
Alle Details dazu findet ihr im Theme-Handbuch von WordPress.
Keine unnötig tief verschachtelten Funktionen
Ein weiterer häufiger Fehler ist es, Funktionen zu schreiben, um am Ende wiederum nur eine einzige WordPress-Funktion aufzurufen. Auch wenn man dabei dem DRY-Prinzip (Don’t Repeat Yourself) folgt, verursacht dies einen schwer lesbaren Code. Denn welche WordPress-Funktion am Ende genutzt wird, ist nicht mehr direkt einsehbar.
Beispielsweise sollte der Aufruf der Funktion get_template_part("news/$name", $slug)
nicht durch eine eigene Funktion get_news_part($name, $slug)
ersetzt werden, nur um das Wort news
einzusparen. Denn es gibt nur einen einzigen Vorteil, der dadurch entsteht, aber eigentlich nie zum Tragen kommt: Ihr könnt den News-Ordner leichter umbenennen, indem ihr nur eure geschriebene Funktion anpasst. Doch sind wir mal ehrlich, wie oft wird das wohl passieren? Vermutlich seltener, als das ihr Probleme habt, euren Code nachzuvollziehen.
Nutze, wenn möglich, immer WordPress-Funktionen
Dies hat gleich mehrere sinnvolle Vorteile. Ihr habt einen sauberen Code, denn häufig machen WordPress-Funktionen bereits genau das was ihr wollt, jedoch benötigt ihr hier nur einen Funktionsaufruf. Außerdem wird euer Code für andere (und für euch selbst, wenn ihr ein paar Monate später die selbe Code-Stelle nachvollziehen wollt) leichter zu lesen. Außerdem können Fehler vermieden werden, die bei eigenen Implementierungen schnell auftreten können.
Ein klassisches Beispiel ist der direkte Zugriff auf Variablen eines Klassenobjekts. Für die meisten Anwendungsfälle liefert WordPress nämlich passende Funktionen mit.
get_the_title($post) //Richtig
$post->post_title //Falsch
Damit das nicht passiert, findest du hier eine sortierte Liste aller WordPress-Funktionen.
Fazit
WordPress bringt viele Eigenheiten mit. Um diese jedoch komplett auf dem Schirm zu haben, wird vor allem eine Sache benötigt: Erfahrung. Doch bis es soweit ist, könnt ihr die oben erwähnten Fehler beheben und zumindest diese in Zukunft nicht mehr machen.