Support » Plugins » functions.php

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)
  • 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.

    Thread-Starter neighbourtom

    (@neighbourtom)

    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.

    Thread-Starter neighbourtom

    (@neighbourtom)

    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 Monat, 1 Woche 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.

    Thread-Starter neighbourtom

    (@neighbourtom)

    Au weh, du hast recht. Danke vielmals für den Hinweis.

    Thread-Starter neighbourtom

    (@neighbourtom)

    gelöst. Danke euch.

    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?

    Thread-Starter neighbourtom

    (@neighbourtom)

    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?

    @pixolin

    Besser?

    Eindeutig besser 😀 😀

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)