Ajax kommentare kaputt

  • ich habe da ein schönes Theme was ich zwar nicht selber gecodet habe aber meinen Bedürfnissen angepasst. Nun hat das Teil Ajax Kommentare und zufälliger weise habe ich heute fest gestellt, das die nicht mehr gehen. Da ich nichts verändert habe, kann es eigentlich nur an einem Update liegen. Ich vermute mal das 2.8 Update. Ich kann zwar etwas coden aber mit php habe ich noch nicht soviel gearbeitet. Daher habe ich mal die Zeilen Code raus gesucht die ich vermute die daran hängen in der Hoffnung das jemand hier einen zusammenhang kennt mit Wordpress updates.

    Er springt also beim if raus, weil die var leer ist, mit der Meldung das man ein Kommentar eingeben soll, obwohl ein Kommentar eingegeben wurde. Wäre nett wenn mir jemand dabei helfen könnte.

    mfg
    Einste1n

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • okay, halb gelöst ... lag zwar an nem update aber wohl nicht an WP selbst sondern an antispam bee. Ich kann zwar nun Kommentare posten aber es kommt immer noch eine Fehlermeldung :

    Zitat

    Warning: array_keys() [function.array-keys]: The first argument should be an array in D:\localserver\xampp\htdocs\wordpress\wp-includes\post.php on line 821

    Warning: Invalid argument supplied for foreach() in D:\localserver\xampp\htdocs\wordpress\wp-includes\post.php on line 821

    ich hab das also nochmal local getestet, mit einem frischen wordpress ohne Plugins. Gleiches Ergebniss!

  • gut ich hab jetzt raus gefunden an welcher Stelle diese Meldung ausgelöst wird, aber ich weiß immer noch nicht wieso.

    der code sieht so aus :

    und es liegt definitiv an :

    PHP
    <?php edit_comment_link('Bearbeiten',' | ',''); ?>

    klammer ich es aus geht es. Nun könnte man meinen dann müsste die Meldung ja immer kommen. Sie tuts aber nur wenn der Kommentar hin zu gefügt wird. Das passiert folgender weise :

    PHP
    $comment = $wpdb->get_row("SELECT * FROM {$wpdb->comments} WHERE comment_ID = " . $newCommentID);
    // parse the new comments.php result and return the last <li>
    ob_start();
    $comments = array($comment);
    include(TEMPLATEPATH . '/comments.php');
    $commentout = ob_get_clean();
    preg_match('#<li(.*?)>(.*)</li>#ims', $commentout, $matches);
    
    
    successMessage("<li id=\"newcomment\">".$matches[2]."</li>");

    wie schon geschrieben, ich kenne mich nicht wirklich mit php aus aber wenn ich das richtig sehe wird die comments.php geladen und dann nach der richtigen Stelle zum anzeigen des Kommentars gesucht und mit den Daten des gerade eingegeben Kommentars gefüttert.

    Es wird also der gleich code ausgeführt wie beim normalen anzeigen der kommentare aber es kommt da plötzlich eine Fehlermeldung. Das irgendwie unlogisch :(

    mfg
    Einste1n

    PS : ja ich weiß, es gibt mittlerweile wp_list_comments(); aber damit lässt sich das Design wohl nicht so bestimmen wie mit der Lösung.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!