Wenn Sie ein WordPress-Theme anpassen möchten, ist das erste, was Sie tun müssen – und dies ist eine gute Praxis –, dieses Thema als „Kind-Theme“ abzulehnen.
Ich werde diesen Punkt in diesem Artikel nicht näher erläutern, er ist nicht das Thema.
Auf der anderen Seite gibt es bei der Erstellung eines Child-Themes einen Sonderfall für die Datei functions.php, die oft als „WordPress-Datei Functions.php“ bezeichnet wird.
Dies liegt daran, dass die Datei functions.php nicht wie andere WordPress-Vorlagendateien funktioniert.
Wenn wir die klassischen Dateien „header.php“, „footer.php“ usw. anpassen, sind wir es gewohnt, die übergeordnete Datei zu duplizieren und den Code leicht anzupassen. Meistens der HTML-Teil.
Aber für die Datei functions.php: Es ist nicht dasselbe …
Bei Child-Themes lädt WordPress die Dateien in den Ordner des Child-Themes und IGNORIERT identische Dateien aus dem Parent-Theme.
Aber für WordPress verhält sich die Datei functions.php anders!
Es wird aus dem Child-Theme geladen UND DANN die Datei functions.php aus dem Parent-Theme geladen .
Es ist daher wichtig, die Parent-Theme-Datei nicht zu „kopieren/einfügen“, sondern mit einer leeren Datei für das Child-Theme zu beginnen. Und in letzterem wird man nur die Funktionen deklarieren, die man braucht.
Wenn Sie dies nicht tun und 2 identische functions.php-Dateien haben: Wenn Ihr Theme gut entwickelt ist, kann es in Ordnung sein. Warum erkläre ich später.
Aber in den meisten Fällen erhalten Sie ein nettes „Cannot redeclare function_name()…“
Warum? Nun, einfach weil PHP dieselbe Funktion nicht zweimal deklarieren kann.
Wenn Ihr „Theme“ also gut ist, wird es jedes Mal platziert haben:
if (! function_exists ('function_name')) { ... }
Wenn also die functions.php des Parent-Themes als zweites geladen wird und es sieht, dass die Funktion bereits deklariert wurde, passiert sie ihren Weg, andernfalls erstellt sie sie.
Hier ist der Trick. Seien Sie also vorsichtig mit dieser Datei, denn wenn wir nicht aufpassen, können wir uns die Haare ausreißen, um zu verstehen, warum wir Fehler oder Funktionen haben, die nicht funktionieren.