WordPress mit Code-Schnipsel ohne Fehler erweitern

WordPress mit Code-Schnipsel ohne Fehler erweitern

Wenn ich für jedes vergessene Semikolon einen Euro bekommen hätte, wäre ich jetzt reich!

Genauso oder ähnlich denken Programmierer und wie sieht es da erst bei Laien aus. Ihr bekommt von uns Ratschläge wie: “Füge doch einfach den Code in die functions.php ein.” oder “Die drei Zeilen stellst du ans Ende der functions.php“. Und du machst das ganz brav und hast eine weiße WordPress-Seite. Denn anscheinend ist es doch nicht so einfach. Ich greife dir heute mal unter die Arme und zeige dir die häufigsten Fehler, die dir hier passieren können:

  1. Außerhalb der php-Tags einfügen
  2. Verschachtelte php-Tags erzeugen
  3. Innerhalb von Funktionen einfügen
  4. Fehlerhaftes Kopieren des Codes

Wo ist die functions.php?

Wir reden hier ja von WordPress und die Erweiterung von bestehenden Themes. Gleich am Anfang an ganz wichtiger Tipp:

Erweitere nur ein Theme. Ändere NIE die Originaldateien von WordPress.

Denn sobald du Dateien von WordPress selbst änderst, sind sie beim nächsten Update sicher wieder überschrieben. Und auch noch einen Tipp gebe ich dir gerne gleich am Anfang deines Weges mit:

Arbeite immer mit einem Child-Theme!

Hier gilt das gleiche! Sobald du im Original-Theme arbeitest gehen alle Änderungen bei einem Update verloren. Wenn du absolut keine Ahnung hast wie man ein Child-Theme anlegt, habe ich dafür einen extra Beitrag geschrieben.

Und genau im Theme Ordner ist auch diese berüchtigte Datei, du findest sie unter /wp-content/themes/dein-theme/functions.php. Diese Datei ist für die Themefunktionen zuständig. Also alle Dinge die nur dein Theme kann und nicht direkt von WordPress zur Verfügung gestellt werden. Und daher wird sie auch gerne für jede Art der Erweiterung des Themes und der Funktionalität verwendet.

Wie schaut PHP-Code aus?

Wenn du tiefer in das Thema einsteigen willst, habe ich frühe eine Serie von Beiträgen zum Lernen von PHP geschrieben. Falls du aber nur schnell einen Überblick und Hilfestellung brauchst, bekommst du hier einen wirklich kurzen Einstieg.

Schauen wir einmal auf einen eine typische functions.php, oder besser auf einen Auszug davon. Denn meistens ist der Code viel länger als hier gezeigt.

Das schaut jetzt alles komplizierter aus, als es wirklich ist. Für dieses Mal sind die erste und die letzte Zeile wichtig. Da findest du den öffnenden <?php und schließenden ?> Tag für PHP. Dadurch weiß der PHP-Interpreter welcher Teil der Datei für ihn interessant ist und verarbeitet werden muss. Falls du jetzt wissen willst, wie eine Webseite funktioniert, kannst du das nachlesen.

Die üblichen Fehler beim Einfügen von Code-Schnipsel in PHP

Wichtig ist, dass die meisten Fehler passieren, da du den Code schlicht und ergreifend an der falschen Stelle einfügst. Also schauen wir mal nach, welche falschen Orte es in der functions.php (gilt aber auch für alle anderen PHP-Dateien) geben kann.

Einfügen außerhalb der php-Tags

Vorher haben wir gerade die öffnenden und schließenden PHP-Tags kennengelernt. Jetzt kommt es vor, dass du in den Weiten des Netzes auf einen Code-Schnipsel stößt und ihn unbedingt brauchst. Und dann steht bei den Anweisungen auf der Webseite für den Code etwas ähnliches:

Füge den Code am Ende der functions.php ein.

Und da du die Anweisung brav befolgt sieht deine functions.php danach so aus.

Du siehst den Fehler in Zeile #3? Genau, der Code ist einfach nach dem schließenden Tag eingefügt und führt daher zu einem Fehler. Genauso sieht es aber auch umgekehrt aus.

Auch hier siehst du sofort den Fehler in Zeile 7 und 8. Der Code ist vor dem öffnenden PHP-Tag eingefügt worden und das bringt den PHP-Interpreter sofort ins Stolpern und dir eine weiße WordPress-Seite.

Einfügen mit doppelten php-Tags

Auch der zweite Fehler ist sehr beliebt. Meistens ist es typisches Copy-And-Paste und ein wenig Unerfahrenheit der ihn erzeugt. Du surfst durchs Netz und findest folgenden Code-Schnipsel:

Und wie immer steht auf der Seite, dass du den Code in deine Themefunktionen einfügen sollst. Und genau das machst du brav und auf einmal schauen deine Themefunktionen so aus:

Ich habe dir die fehlerhaften Zeilen markiert und du siehst sehr gut, dass die öffnenden und schließenden php-Tags verschachtelt sind. Du hast es geschafft ein php-Skript innerhalb eines anderen einzubauen. Für uns ist das schon lesbar, aber der PHP-Interpreter kann es nicht und bricht die Verarbeitung ab. Wenn du hier die Zeile #3 und #11 löscht, funktioniert wieder alles.

Falsch verschachtelter Code

Das ist auch ein häufiger Fehler. Er passiert meistens dann, wenn du dich schon ein wenig sicherer fühlt und den Schnipsel nicht mehr am Ende, sondern an einer bestimmten Position in der functions.php einfügst. Wir verwenden wie immer den Code-Schnipsel für die Meta-Box, den wir bereits kennen und unsere Themefunktionen schauen so aus:

Du siehst in den Zeilen 12 – 18 das eingefügte Code-Schnipsel. Eigentlich schaut es ganz gut aus, aber… Du bist in der Zeile verrutscht und hast den Code innerhalb einer Funktion eingefügt. Das klappt auch nicht, denn zwischen den geschwungenen Klammern von function ... { ... } darf keine andere Funktion stehen. Und genau das hast du gemacht und bringst damit den PHP-Interpreter zum Stolpern und WordPress zeigt dir eine weiße Seite im Browser an. Einfach den Code ab Zeile 21 einfügen und schon funktioniert wieder alles.

Der falsch kopierte Code-Schnipsel

Gerade wenn du aus dem Browser, Code mit der Maus kopierst, kann es zu diesem Fehler kommen. Du markierst dir den Code, indem du mit der Maus darüber ziehst und übersiehst das erste Zeichen oder die erste Zeile. Oder du markierst das letzte Zeichen die letzte Zeile nicht mit. Im Eifer des Gefechts fällt dir das gar nicht auf und du fügst den Code in die Themefunktionen, zwar an der richtigen Stelle ein, aber eben mit einem fehlenden Zeichen bzw. einer fehlenden Zeile.

Hier siehst du die Zeile 5! Es fehlt am Anfang ein Schrägstrich, der nicht mitkopiert wurde. Daher “denkt” PHP jetzt, dass es ein Befehlszeile ist und nicht mehr eine Bemerkung.

Bei diesem Beispiel ist es die letzte Zeile: Es fehlt schlicht und ergreifend ein Semikolon (;). Das ist wahrscheinlich der häufigste Fehler warum PHP-Skripts nicht funktionieren, dieses verdammte Semikolon am Zeilenende.

Ich hoffe ich konnte dir die 4 Fehler

  1. Außerhalb der php-Tags einfügen
  2. Verschachtelte php-Tags erzeugen
  3. Innerhalb von Funktionen einfügen
  4. Fehlerhaftes Kopieren des Codes

ein wenig darstellen und erklären wie du zu einer Lösung kommst.

Blogheim.at Logo