Deutsch English
WordPress Read this post in English

Leere Seite nach dem Kommentieren eines WordPress-Posts

Dieses Problem kennen sicher so einige, und auch ich litt schon seit einer ganzen Weile darunter, daß ich selbst als eingeloggter Admin auf meinem eigenen Blog keine Kommentare hinterlassen konnte (bzw. nur vom Backend, nicht aber von der Seite aus). Heute habe ich mir endlich einmal die „Zeit“ genommen, dem Problem auf den Grund zu gehen. Ich schreibe das deshalb in Anführungszeichen, weil es letztendlich keine drei Minuten gedauert hat, den Fehler zu finden. Hätte ich mich doch nur schon viel früher auf die Suche gemacht. ;)

Das Problem bestand darin, daß im Kommentar-Formular ein versteckter Input fehlte, der bei WordPress aber immer vorhanden sein muß:

<input type="hidden" name="comment_post_ID" value="<?php echo $post->ID; ?>" />

Wenn man also nach dem Abschicken eines Kommentars andauernd eine weiße Seite bekommt, sollte man mal nachsehen, ob man in seinem Kommentar-Template (normalerweise ist das die Datei comments.php im Verzeichnis des betreffenden Themes) diese Zeile evtl. vergessen oder an einer falschen Stelle eingefügt hat.

In meinem Fall war es z. B. so, daß ich die Zeile an einer falschen Stelle innerhalb einer if-Abfrage eingefügt hatte:

<?php if ( $user_ID ) : ?>
	<p>Du bist eingeloggt als ...</p>
<?php else : ?>
	[Formularfelder für Name, E-Mail usw.]
	<input type="hidden" name="comment_post_ID" value="<?php echo $post->ID; ?>" />
<?php endif; ?>

Dadurch war die Zeile also für nicht eingeloggte Besucher (Gäste) vorhanden, sodaß sie problemlos kommentieren konnten. War man aber eingeloggt (was ich selbst als Admin natürlich immer war), dann fehlte die Zeile, und wenn die fehlt, dann bricht WordPress sein Kommentar-Script eben kommentarlos (haha!) mit einer weißen Seite ab.
Richtig muß es natürlich so lauten:

<?php if ( $user_ID ) : ?>
	<p>Du bist eingeloggt als ...</p>
<?php else : ?>
	[Formularfelder für Name, E-Mail usw.]
<?php endif; ?>
<input type="hidden" name="comment_post_ID" value="<?php echo $post->ID; ?>" />

So wird die Zeile in allen Fällen ausgegeben, und dann klappt es auch als Admin!



Kommentare

  1. 21. Januar 2010
    20:30 Uhr

    Huken flag

    Thanks for this post! :)

Kommentieren

Erlaubtes HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <p> <pre lang="" line="" escaped=""> <q cite=""> <strike> <strong> <img src="" alt="" class="" width="" height=""> | Codeschnipsel können in `backticks` gepostet werden. Beispiel: `<?php echo "Hi!"; ?>`