Ratgeber
WordPress: So vermeidet ihr typische Fehler bei der Theme-Entwicklung

So lassen sich übliche Fehler bei der Entwicklung mit Wordpress vermeiden. (Bild: Shutterstock/David MG)
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.
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.
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()
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.
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.
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.
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.
Bitte beachte unsere Community-Richtlinien
Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.
Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.
Dein t3n-Team