"Als gelesen markieren" Die Technik dahinter

In dem Artikel von Andreas alias Mr. Mooky wird beschrieben, wie er das Ganze gelöst hat. Da meine Lösung ein wenig abweicht, dachte ich, veröffentliche ich sie hier auch mal als Ergänzung:

Meine Version basiert darauf, dass "als gelesen markiert"-Kommentare keinen Inhalt haben. Das heißt, dass man im ersten Schritt in Wordpress ermöglichen muss, leere Kommentare abzusenden. Dazu muss man die Datei "wp_comments_post.php", wie von Andreas beschrieben, in sofern verändert werden, als das man die folgenden Zeilen löscht oder auskommentiert:

// Vorher

if ( '' == $comment_content )
wp_die( __('Error: please type a comment.') );

// Nachher

/*
if ( '' == $comment_content )
wp_die( __('Error: please type a comment.') );
*/

Im nächsten Schritt wird via Mootools überprüft, ob der Inhalt des Kommentarfeldes leer ist. Falls dies der Fall ist, wird der Inhalt des "Absende"- bzw. "Kommentieren"-Buttons durch "Als gelesen markieren" ersetzt. Das ist aber für die Grundfunktion eigentlich nicht sonderlich nicht wichtig, sondern nur für mein Design vonnöten, weshalb ich hier nicht weiter drauf eingehe.

Um die normalen Kommentare getrennt von den "Gelesen"-Kommentaren anzeigen zulassen, lasse ich die Wordpress-Kommentar-Schleife in der "comments.php" zweimal durchlaufen. Das erste Mal werden nur Kommentare mit Inhalt, das zweite Mal nur die ohne mit Ergänzung von " hat diesen Artikel gelesen" angezeigt. Das sieht dann so aus:

<span>Kommentare</span>

<?php

if(have_comments()) {

    foreach($comments as $comment) {

    	if(get_comment_text() != '') {

    		$have_text_comments = true;

// hier das Kommentardesign für normale Kommentare
}
}
}
if($have_text_comments !== true) {
// Text, falls es keine Kommentare gibt
}
?>

<span>Leser</span>
<?php
if(have_comments()) {
foreach($comments as $comment) {
if(get_comment_text() == '') {
$have_read_comments = true;

// hier das Kommentardesign für "Leser"
}
}
}
if($have_read_comments !== true) {
// Text, falls es keine Leser gibt
} ?>

Und das war's dann auch schon. Falls ihr noch Fragen haben solltet, steht euch der Kommentarbereich zur Verfügung.