Support » Allgemeine Fragen » Warning: Undefined variable

  • Gelöst chrisnullzwoelf

    (@chrisnullzwoelf)


    Hallo zusammen,

    seit einiger Zeit nutze ich das Theme von Thinkupthemes „Melos Pro“.

    Mein Hoster stellt den Support für PHP 7 ein und möchte, dass auf PHP 8+ geupdated wird. Soweit so gut. Auf PHP7.4 läuft meine Website auch ohne Probleme. Mache ich nun das Update auf PHP8.0 oder PHP8.1, dann erscheinen folgende Fehler auf meiner Website:

    1)
    Warning: Undefined variable $output in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/12.custom-styling.php on line 26

    Die dazugehörige Codezeile im Theme-Datei-Editor:

    $output .= „\n“ . ‚<style type=“text/css“>‘ . „\n“;

    Und 2)
    Warning: Undefined variable $thinkup_blog_postswitch in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/05.blog.php on line 594

    Mit dem dazugehörigen Code:

    if ( empty( $featured_id ) or $thinkup_blog_postswitch == ‚option2‘ ) {

    Den Theme-Ersteller habe ich bereits kontaktiert, dieser gibt in einer ersten Antwort an, dass alles mit PHP8+ kompatibel ist.

    Kann einer von euch helfen?

    Danke im Voraus!

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)
  • Warning ist das englische Wort für einen Warnhinweis. Da in deiner WordPress-Installation vermutlich in der wp-config.php der Debug-Modus eingeschaltet ist (define( 'WP_DEBUG', true );), wirst du mit dem Warnhinweis darauf aufmerksam gemacht, dass das Theme in zwei Zeilen eine Programmierweise nutzt, die künftig Probleme bereiten könnte. Im Moment scheint das Theme hingegen weiter zu funktionieren – auch wenn ich da als Anwender eine andere Vorstellung von „mit PHP8+ kompatibel“ hätte.

    Ein erster Workaround wäre, die Meldung durch Deaktivieren des Debug-Modus abzustellen. Dazu änderst du mit einem geeigneten Editor (bitte nicht Windows Notepad) in der wp-config.php die Zeile in define( 'WP_DEBUG', false );.

    Das ist natürlich reine Kosmetik und behebt nicht den Programmierfehler. Sollte sich der Theme-Entwickler außer Stande sehen, das zu beheben, solltest du einen Dienstleister hinzuziehen – oder über einen Theme-Wechsel nachdenken.

    PHP8+ kompatibel vielleicht, aber nicht fehlerfrei. Du hast jetzt mehrere Möglichkeiten.

    1. Ein anderes Theme verwenden
    2. Die Ausgabe von PHP-Warnings unterdrücken (eine unschöne Lösung)
    3. Das Script selber korrigieren und hoffen, dass es bald ein fehlerfreies Update gibt.

    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    @pixolin Danke für deine ausführliche Antwort. Der Debug-Modus ist allerdings aus.

    @bscu Danke für deinen Lösungsansatz. Option 3 wäre charmant, aber ich weiß nicht, was an dem Code falsch ist bzw. geändert werden kann/soll.

    Wie würde Option 2 funktionieren?

    Ein Themewechsel ist eine Option, allerdings nur mein Plan B.

    Zuerst einmal solltest du eine Kopie dieser beiden Dateien anlegen.

    Die Zeile 26 in 12.custom-styling.php kommentierst du mit // am Anfang der Zeile und fügst dies ein:

    if (isset($output))
       $output .= "\n<style type='text/css'>\n";
    else
       $output = "\n<style type='text/css'>\n";

    Die Zeile in 05.blog.php kommentierst du mit // am Anfang der Zeile und fügst dies ein:

    if ( empty( $featured_id ) or (isset($thinkup_blog_postswitch) && $thinkup_blog_postswitch == 'option2' )) {

    Aber: ohne Gewähr! Ein Backup der beiden Dateien ist Pflicht!

    Option 2 wurde dir schon von @pixolin geschrieben, allerdings werden vermutlich die Log-Files auf dem Server mit diesen Fehlern vollgepumpt. Daher ist das eine Notlösung, die ich nicht bevorzugen würde.

    • Diese Antwort wurde geändert vor 1 Jahr, 5 Monaten von bscu.
    • Diese Antwort wurde geändert vor 1 Jahr, 5 Monaten von bscu.

    Probier bitte mal, die Zeile zu ergänzen:

    define( 'WP_DEBUG', false );
    @ini_set( 'display_errors', 0 );


    Nachtrag: meine Antwort hat sich mit der Antwort von @bscu überschnitten. Es ist sinnvoller, zuerst eine Korrektur des Code auszuprobieren, statt die Fehlermeldung einfach zu unterdrücken. Kurz: was @bscu schreibt. 😉

    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    @bscu Dein Code funktioniert. Sicherungskopien habe ich mir angelegt, deinen Code eingefügt und nun sieht es gut aus. Danke für die schnelle und unkomplizierte Hilfe – ich bin sehr begeistert 🙂

    Leider habe ich nun noch zvier weitere Zeilen gefunden – jetzt beim Aufrufen des jeweiligen Blogposts, kannst du hierbei auch helfen?

    1)
    Warning: Undefined variable $post in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/05.blog.php on line 899

    Warning: Attempt to read property „post_title“ on null in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/05.blog.php on line 899

    Der Code:

    echo '<a class="shareicon tumblr" data-tip="top" data-original-title="Tumblr" onclick="MyWindow=window.open('//www.tumblr.com/share/link?url=' . urlencode(get_permalink()) . '&name=' . urlencode($post->post_title) . '&description=' . urlencode(get_the_excerpt()) . '','MyWindow',width=650,height=450); return false;" href="//www.tumblr.com/share/link?url=' . urlencode(get_permalink()) . '&name=' . urlencode($post->post_title) . '&description=' . urlencode(get_the_excerpt()) . '"><i class="fa fa-tumblr"></i></a>';

    2)

    Warning: Undefined variable $post in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/05.blog.php on line 902

    Warning: Attempt to read property „ID“ on null in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/admin/main/options/05.blog.php on line 902

    Der Code:

    echo '<a class="shareicon pinterest" data-tip="top" data-original-title="Pinterest" onclick="MyWindow=window.open('//pinterest.com/pin/create/button/?url=' . urlencode(get_permalink()) . '&description=' . urlencode(get_the_title()) . '&media=' . urlencode(wp_get_attachment_url( get_post_thumbnail_id($post->ID) )) . '','MyWindow',width=650,height=450); return false;" href="//pinterest.com/pin/create/button/?url=' . urlencode(get_permalink()) . '&description=' . urlencode(get_the_title()) . '&media=' . urlencode(wp_get_attachment_url( get_post_thumbnail_id($post->ID) )) . '"><i class="fa fa-pinterest"></i></a>';

    3)
    Warning: Undefined variable $output in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/lib/shortcodes/includes/element-pricing1.php on line 27

    Der Code:

    $output .= ‚<div class=“pricing-table style1″ style=“max-width:‘ . $width . ‚px“>‘;

    und 4)
    Warning: Undefined array key „toggle“ in /homepages/35/d4295279275/htdocs/geheimtipp-duesseldorf.de/wp-content/themes/Melos_Pro/lib/shortcodes/includes/element-accordion2.php on line 12

    Der Code:

    $toggle = $context[‚toggle‘];

    Vielen Dank schon einmal, ich fühle mich hier wunderbar betreut. Ein schönes Wochenende wünsche ich schon mal!

    • Diese Antwort wurde geändert vor 1 Jahr, 5 Monaten von chrisnullzwoelf.

    kannst du hierbei auch helfen?

    Vielleicht. Das ist nicht immer so einfach. In den beiden Fällen ging das, aber das heißt nicht, dass es bei den anderen Macken auch so einfach wird.

    Und wer weiß, was da noch so alles hochkommt ….

    Nachtrag:
    Wie ich befürchte habe, das wird nicht mehr so leicht, da gehe ich nicht dran, ohne die komplette Funktion zu sehen. Und selbst dann könnte das kompliziert werden.

    • Diese Antwort wurde geändert vor 1 Jahr, 5 Monaten von bscu.
    • Diese Antwort wurde geändert vor 1 Jahr, 5 Monaten von bscu.
    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    @bscu Ich erwarte nichts, bin schon jetzt sehr dankbar. Die Macken habe ich oben ergänzt.

    Die Macken habe ich oben ergänzt.

    Ich habe auch ergänzt. 😉

    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    Dank dir auf jeden Fall!

    Hast du dem Entwickler diese PHP-Meldungen genannt oder hast du nur gesagt, dass es Probleme gibt? Ich würde auch jeden Fall diese Fehlermeldungen nehmen und diese dem Entickler schicken. Vielleicht kennt er eine Lösung und wenn nicht, sollte er eine Lösung finden können. Leider gibt es immer wieder PHP-Programmierer, die das Error-Reporting von PHP nicht hochdrehen und solche Warnings daher einfach nicht sehen oder sie sogar einfach ignorieren.

    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    Das mache ich so, hoffentlich wird darauf reagiert 😉

    Danke nochmal.

    Thread-Starter chrisnullzwoelf

    (@chrisnullzwoelf)

    Danke nochmal an euch. Ich habe mich jetzt doch für ein anderes Theme entschieden, von ThinkUpThemes konnte und kann ich keine Hilfe erwarten. Bin jetzt auf Divi gewechselt. Und PHP8 läuft ohne Probleme.

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)
  • Das Thema „Warning: Undefined variable“ ist für neue Antworten geschlossen.