Ein weißer Bildschirm voller nichts erscheint da, wo vorher noch die in zahlreichen Stunden erarbeitete Homepage begutachtet werden konnte. Wie ist es dazu gekommen? In vielen Fällen durch das falsche Einbinden eines PHP-Schnipsels in die functions.php des WordPress Themes. In diesem Beitrag erfährst du, wo PHP-Code wirklich hingehört.
Dieses Tutorial setzt voraus, dass ihr bereits wisst, wie auf die functions.php zugegriffen werden kann. Ist dies nicht der Fall, solltet ihr euch vor dem weiterlesen, folgendes Tutorial näher ansehen: Functions.php richtig bearbeiten ohne die Website lahmzulegen.
Sollte es bei dir schon soweit sein, dass du auf einen weißen Bildschirm blickst, statt auf deine WordPress Webseite, dann wird dir folgender Artikel weiterhelfen: WordPress weißer Bildschirm – Hilfe, was tun?
In die functions.php gehört PHP-Code
Wenn nicht alle, sind die meisten functions.php-Dateien in der Skriptsprache PHP geschrieben. Das heißt, dies ist nicht der Ort um benutzerdefiniertes CSS oder HTML einzubinden (es sei denn, du weißt genau, was du tust).
Um das besser zu verstehen, sehen wir uns einige der Dateien an, die ein WordPress-Theme bilden:
functions.php: Sie ist das Herzstück des Themes. In dieser Datei befinden sich die Funktionen des Themes. Hier können beispielsweise neue Widget-Bereiche erstellt, Beitragsformate editiert oder Menüs und deren Position bestimmt werden.
style.css: Ein Stylesheet enthält CSS-Code und definiert das Design einer Website. Hier finden sich Befehle zu Farben, Abständen, Schriftarten etc.
Templates: Template Files enden wie die functions.php mit dem Suffix .php (z. B. sidebar.php, single.php, search.php etc.). Diese Dateien enthalten sowohl HTML als auch PHP Code und sind für die Darstellung eines bestimmten Bereichs wie der Sidebar, dem Header oder dem Footer zuständig.
PHP-Code kommt zwischen die PHP-Tags
Der gesamte PHP-Code muss zwischen die PHP-Tags. Das sagt uns sofort eine wichtige Sache: wenn ihr am Anfang der Datei Code einfügen möchtet, muss dieser nach dem öffnenden PHP-Tag folgen und vor dem schließenden Enden. Die Tags sehen wie folgt aus:
//
Der schließende PHP-Tag ist bei vielen Themes übrigens optional. Manche Themes – wie das Divi Theme – verzichten auf den schließenden Tag am Ende der Datei. Wenn es bei euch so sein sollte, ist es OK! Ihr müsst den Tag nicht zusätzlich hinzufügen.
Kommentare in PHP-Blöcken
Nicht selten finden sich Kommentare zwischen den Code-Blöcken. Diese erfüllen keine primäre Funktion. Sie dienen eher Entwicklern, damit diese auf Anhieb erkennen können, worum es in dem Code-Block geht. Der folgende Code ist aus unserem SVG Tutorial und dient als Beispiel:
// SVG Upload erlauben
function allow_svgimg_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svgimg_types');
- Der Kommentar beginnt mit zwei Schrägstrichen. Diese dürfen nicht entfernt werden! Wird der Schrägstrich entfernt, unterbricht das Kommentar und kann die gesamte Datei beschädigen.
- Dazwischen darf ebenso kein Code platziert werden. Kein Code innerhalb eines Kommentars wird ausgeführt.
Wo PHP-Code eingefügt werden kann
Die beste Wahl ist einen leeren Raum zu finden. Den solltest du nicht unbedingt in der Mitte der functions.php suchen, da die Wahrscheinlichkeit hier höher ist, mit einem anderen Schnipsel in einen Konflikt zu geraten. Stattdessen empfehlen wir, direkt ans Ende der functions.php zu gehen.
- Füge deinen Code am Ende der Datei nach dem letzten Stück Code – jedoch vor dem schließenden Tag – ein.
- Wenn kein schließender Tag vorhanden ist, ist das in Ordnung. Es bedarf nicht selbst einen hinzuzufügen.
- Am besten ist, wenn du vor dem Einfügen deines Codes ein paar Leerzeilen setzt, damit dein Code vom restlichen eindeutig getrennt ist.
Beispiel:
Nehmen wir an, du möchtest folgenden Code-Schnipsel in die functions.php einsetzen:
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
Hier ein Bespiel anhand der bisher präsentierten Codes für richtiges Einfügen:
// SVG Upload erlauben
function allow_svgimg_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'allow_svgimg_types');
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
Auf den ersten Code-Schnipsel folgen zwei Leerzeilen und dann der zweite Schnipsel. Beide Schnipsel können auch hintereinander, also ohne Leerzeilen, eingefügt werden. Auf diese Weise jedoch, lassen sie sich besser auseinanderhalten.
Hier wurde der Schnipsel am Ende der Datei, aber nach dem schließenden (?>) Tag platziert. PHP-Code muss innerhalb der PHP-Tags platziert werden, sodass dieses Beispiel Fehler verursachen könnte.
?>
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
So wäre es zum Ende der functions.php Datei richtig. Der Code wurde vor dem schließenden PHP-Tag platziert.
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
?>
Geschwungene Hochkomma und Anführungszeichen vermeiden
Dieser Fehler geschieht häufig und ist total ärgerlich. Denn auch wenn der Code richtig eingebunden wurde, wird die Änderung nicht angenommen. Wie kommt es zum geschwungenen Hochkomma und geschwungenen Anführungszeichen? Code sollte nie in Word oder ähnlichem eingefügt und bearbeitet werden. Auch nicht per Email oder Messenger verschickt werden. Wieso nicht? Das Problem ist, dass hier unerwünschte Formatierungen entstehen können, wie eben die geschwungenen Anführungszeigen. Um Code zu bearbeiten oder weiterzugeben, kann TextEdit auf dem Mac oder Notepad auf dem Windows Computer verwendet werden. Wer beide Programme nicht hat, kann sich Atom herunterladen – ein kostenloses Programm speziell zum Coden.
Hier ist der Unterschied nochmals dargestellt:
Richtig
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
function no_wordpress_errors(){
return ‘Something is wrong!‘;
}
add_filter( ‘login_errors‘, ‘no_wordpress_errors‘ );
Code in die functions.php richtig einbinden – Fazit
Die functions.php ist ein kleines Sensibelchen. Es empfiehlt sich vor einer Änderung ein Back-Up durchzuführen. Dabei muss nicht die gesamte Website gesichert werden. Lade einfach die functions.php auf deinen Computer um die Änderung getrennt vom Original vorzunehmen. Diesen Vorgang haben wir in folgendem Artikel näher beschrieben: functions.php bearbeiten ohne die Website lahmzulegen
Noch Fragen? Verbesserungsvorschläge oder Anregungen für weitere Artikel? Dann schreibt es in die Kommentare.
Kommentare