ich bräuchte bitte eine konkrete Hilfestellung, wo genau ich den oben genannten Code einfügen muss.
Das steht doch da:
This can be easily resolved , by adding the below code in the functions.php file of your current active theme the issue on the database will be fixed
Da dein aktives Theme dein Child-Theme ist …
Ist sowieso besser im Child-Theme aufgehoben, denn wenn das Parent-Theme aktualisiert wird, ist deine Anpassung wieder weg.
Also, danke für deine Antwort, … ja, das mit dem Child Theme dachte ich mir schon, allerdings meinte ich auch wo in der functions.php? Mittendrin irgendwo, oder am Ende?
Sollte eigentlich grundsätzlich egal sein. Einfach am besten mal testen und vorher die bestehende functions.php
des Child Themes z. B. lokal sichern.
Klappt nicht. Hatte nun zwei Stellen probiert, und das ist die Fehlermeldung, wenn es am Schluss eingefügt wird:
Fatal error: Cannot redeclare fix_mvx_reg_issue() (previously declared in /var/www/vhosts/l***u.com/test.l***u/wp-content/themes/exs-pro-child/functions.php:37) in /var/www/vhosts/l***u.com/test.l***u/wp-content/themes/exs-pro/functions.php on line 170
-
Diese Antwort wurde geändert vor 1 Jahr von
Bego Mario Garde. Grund: Domain anonymisiert
Hatte es schon probiert, aber offensichtlich falsch gemacht.
Vermutlich hast du das jetzt in beiden functions.php stehen. Entferne es bei dem Parent-Theme.
Au weh, du hast recht. Danke vielmals für den Hinweis.
Anonymous User 20597857
(@anonymized-20597857)
Sollte man nicht die Parent functions komplett in Ruhe lassen und nur solche Funktionen ins Child übernehmen, die in ein
if (!function_exists('themefunktionblablub')) {
function themefunktionblablub() {...
eingeschlossen sind?
Weiß ich nicht, es scheint so, dass es von Gegend zu Gegend wohl unterschiedliche Ansätze gibt… aber ich weiß es wirklich nicht.
Wenn im Parent Theme eine Funktion irgendwas()
definiert wird, du ein Child-Theme erstellst und dort ebenfalls eine Funktion irgendwas()
definierst, kann das Child-Theme wegen eines fatalen Fehlers nicht aktiviert werden – Funktionsnamen müssen immer eindeutig sein, weil sonst nicht klar wäre, welche der beiden Funktionen gemeint ist.
Mit
if (! function_exists('irgendwas')) {
function irgendwas() {
echo "hello dolly";
}
}
wird zunächst geprüft, ob die Funktion bereits im Child-Theme definiert wurde. Damit lassen sich dann Funktionen im Parent-Theme bequem überschreiben, indem die Funktion im Child-Theme neu geschrieben wird.
Um ansonsten fatale Fehler zu vermeiden wird empfohlen, eigene Funktionsnamen mit einer Vorsilbe zu versehen, z.B. pix_irgendwas()
. In Büchern und Tutorials wird dazu oft die Schreibweise my_irgendwas()
verwendet, wobei my_
durch eine individuelle Vorsilbe ersetzt werden soll. Oder man verwendet Namespaces oder eigene PHP-Klassen, die den Gültigkeitsbereich der Funktion eingrenzen.
@pixolin
wird zunächst geprüft, ob die Funktion bereits im Child-Theme definiert wurde.
Da stimme ich zu
Damit lassen sich dann Funktionen im Parent-Theme bequem überschreiben, indem die Funktion im Child-Theme neu geschrieben wird.
Einspruch, Euer Ehren. Damit überschreibst du die Funktion im Parent-Theme nicht. Die Funktion wird nur definiert, wenn es sie bis zu dem Punkt noch nicht existiert. 😉
@bscu Ähm, OK, unpräzise ausgedrückt?
Habe ich im Parent-Theme einen Code
if (! function_exists('irgendwas')) {
function irgendwas() {
echo "hello dolly";
}
}
und füge im Child-Theme den folgenden Code ein
function irgendwas() {
echo "hello support-forum";
}
wird die Funktion im Parent-Theme gar nicht erst angelegt. (Das if-Statement „Funktion irgendwas
existiert nicht“ ist falsch und folglich wird sie auch nicht ausgeführt.) Statt dessen wird aber die im Child-Theme eingefügte Funktion ausgeführt. Die Ausgabe ist in diesem Beispiel hello support-forum
.
Wird im Parent-Theme die Funktion mit einem Hook eingebunden, also etwa
add_action( 'wp_head', 'irgendwas' );
wird nach der Änderung die Funktion aus dem Child-Theme verwendet.
Besser?