Auf Kommentare antworten

Hartmut 13. Juni 2009 um 19:06 Uhr

Für einen Blogger sind Kommentare ein Segen, weil er sich freut, überhaupt mal einen zu bekommen und für den anderen sind sie fast schon ein Fluch, weil er so viele bekommt, dass er kaum noch den Überblick behält.

WordPress hat sich da mal überlegt, die sogenannten verschachtelten Kommentare (threaded comments) einzuführen. Ich finde, erstens zu spät und für mich persönlich, auch viel zu unübersichtlich. Die meisten kennen die Forenstrukturen, also einen Kommentar nach dem anderen. So mag ich es auch und so soll es sein.

Bei den meisten Bloggern hat sich daher die Idee durchgesetzt, auf einen Kommentar Bezug zu nehmen, indem er den Klammeraffen und anschließend den Kommentator benennt. Beispiel @Hartmut: BlaBla.

Nun ist ja das ständige Schreiben dieser Zeichenfolge eher lästig, daher musste ich mich mal der Sache annehmen. Und so präsentiere ich eine Idee, wie der geneigte Blogbetreiber und jeder andere Kommentierer auch mit relativ simplem Code – natürlich wie immer JavaScript vorausgesetzt – sein Kommentarfeld aufwerten kann, in dem er einfach auf die laufende Nummer des Kommentars klickt und die obige Zeichenfolge direkt im Kommentarfeld eingegeben ist.

Hier das JavaScript, welches ich direkt an den Anfang der comments.php gesetzt habe:

<script language="JavaScript">
<!--
function click_on_number(number, id, name)
{
    if (number_already_clicked)
        return false;
    chref = "#comment-" + id;
    etext = "<b>@" + name + ":</b> ";
    field = document.getElementById ('comment');
    field.value = etext + field.value;
    location.href = "#respond";
    field.focus (); // löschen, wenn nicht in Kommentarfeld gesprungen werden soll
    number_already_clicked = false; // setze true, wenn nur jeweils auf einen Kommentar Bezug genommen werden soll
    return false;
}
//-->
</script>

Jetzt sollte eine Funktion im Kommentar-Feld gesetzt sein, welches die laufende Nummer der Kommentierer anzeigt. Bei den meisten Themes ist das so, wer es nicht hat, für den gibt es die komplette Syntax. Weil der Aufruf simpel im Link per onclick-event aufgerufen wird.

<span class="commentmetadata">
    <a href="#comment-<?php comment_ID () ?>"
    title="Auf Kommentar antworten"
    onclick="return click_on_number <?php $comment_count++; echo $comment_count; ?>, <?php comment_ID (); ?>, '<?php comment_author (); ?>')">
    <?php echo $comment_count; ?></a>
</span>

Wichtig ist, dass also im Theme die comment_id aufgerufen wird. Bei den meisten Themes ist das der Fall, hat aber meistens keinen Link (a href). Dieser muss nicht sein, aber dann sollte das onclick-Event wenigstens wieder wie bei den Smileys per CSS entsprechend gekennzeichnet werden (Mauszeiger)

Zufallsauswahl ähnlicher Artikel

13 Kommentare zu “Auf Kommentare antworten”

  1.  Moosi am 13. Juni 2009 um 19:38 Uhr

    hübsch bunt :-D

    das sichtbare Ergebnis stelle ich mir so vor, wie es bei Serendipity ist…

  2.  Martin am 13. Juni 2009 um 20:33 Uhr

    Das probiere ich auch mal. Allerdings muss ich vorher die Kommentarnummern in meine comments.php einfummeln. Aber hört sich echt praktisch an, ich habe das eben mal bei Moosis Kommentar ausprobiert. Toll ist auch, dass man irgendwo im Kommentar stehen kann und der @Kommentator-Text trotzdem direkt an den Anfang springt.

    Ich benutze allerdings immer STRONG statt B, aber das kann man ja nach Belieben anpassen. Klasse Script, Hartmut!

  3.  Hartmut am 13. Juni 2009 um 22:33 Uhr

    @Moosi: Da reden wir noch drüber :)

    @Martin: Danke fürs Lob. Ja, ich selbst habe bei mir im Script auch strong, ich wollte den Code nur übersichtlich gestalten. Im Prinzip sind auch längere Zeichenfolgen möglich, ich habe noch ein Beispiel selbst im Quelltext:
    etext = "Zu " + name + " (" + number + "): ";

  4.  Martin am 13. Juni 2009 um 23:22 Uhr

    Hartmut, bevor ich Bullshit baue: welches Template Tag muss ich bemühen, damit ich die Kommentarnummer so wie bei Dir neben jedem Kommentar angezeigt bekomme und wie muss die verklinkt sein?

    Ich habe eben mal COMMENT_ID probiert, aber dann bekomme ich die Gesamtanzahl aller jemals abgegebenen Kommentare angezeigt (also bei einem Kommentator 1427, beim nächsten 1428, usw.). Ich möchte aber – wie bei Dir – die Kommentarnummer je Beitrag angezeigt haben. Und irgendwie muss ich das Ding ja auch verlinken ;-) Meine Vorlage hatte das nie vorgesehen, daher die Frage ;-) Schreib‘ mir doch einfach, wie diese Scriptzeile in Deinem Template aussieht, das wäre prima und würde mir viel weiterhelfen.

  5.  Luigi am 14. Juni 2009 um 00:05 Uhr

    Das ist ja genial! Das will ich auch haben! Ich bitte um Hilfe, bei mir sind die Kommentare nicht durch nummeriert. also, wie geht das nun genau?
    Den ersten Code in die comments.php, das ist ja klar. Aber was muss ich dann noch machen?

  6.  Hartmut am 14. Juni 2009 um 00:14 Uhr

    @Martin: Du benötigst nur die Zeile in Deinem Theme zum Nullsetzen – <?php $comment_count = 0; ?>

    @Luigi: Bei Dir fehlt zunächst einmal der Code < ?php foreach ($comments as $comment) : ?>
    Dann werden die Kommentare gezählt! Dann kannst Du sie auch per comment-id anzeigen lassen. DAS steht bestimmt auch in Deinem Theme. Ansonsten schicke ich Dir und jedem anderen, der Fragen hat, gerne die/meine comments.php per Mail!

  7.  Luigi am 16. Juni 2009 um 07:46 Uhr

    @Hartmut: Also, ich hab das mit den verschachtelten jetzt mal raus geworfen und den Code den du angesprochen hast ist nun bei mir vorhanden ;) Ich bitte um Input :!

  8.  Hartmut am 17. Juni 2009 um 08:12 Uhr

    @Luigi: Ich habe mir mal eben Deinen Quellcode angeschaut. So wie ich das sehe, wird bei Dir das Kommentarfeld zweimal aufgerufen?!
    Wichtig ist, dass es eine eindeutige ID gibt. Aber so recht blicke ich das jetzt auf die Schnelle auch nicht. Vielleicht treffen wir uns ja heute Abend mal im Chat.

  9.  piri am 17. Juni 2009 um 12:24 Uhr

    Bei mir funktioniert das nicht! Kannst du mir helfen? Auch von den anderen Kommentaren verstehe ich leider nur Bahnhof – ich habe alles wieder gelöscht!

  10.  Hartmut am 17. Juni 2009 um 13:14 Uhr

    @piri: Ja, ich helfe Dir sehr gerne. Schick mir doch einfach mal Deine comments.php an meine E-Mail, dann baue ich Dir die entsprechende Funktion ein.

  11.  piri am 17. Juni 2009 um 17:01 Uhr

    @Hartmut: okay, ich schicke es gleich mal los!

  12.  Poster an der Wand | DELIJO am 17. Juni 2009 um 21:37 Uhr

    [...] Er hat eine fantastische Funktion in WordPress integriert, mit der wunderbar auf Kommentare geantwortet werden kann, ohne die unübersichtlichen Verschachtelungen, die es seit der Version 2.7 gibt zu nutzen. Seht selbst! [...]

  13. [...] technisches: “auf Kommentare antworten” vom Medioman. Ich finde eine geniale [...]

Trackback URI | Kommentare als RSS

Einen Kommentar schreiben

Bold Italic Link Blockquote  Alle HTML-Tags sind erlaubt!
 Zum Bezug auf einen Kommentar, auf laufende Nummer klicken!

Smilies anzeigen/verstecken
:smile_wp: :biggrin_wp: :sad_wp: :surprised_wp: :eek_wp: :confused_wp: :cool_wp: :lol_wp: :mad_wp: :razz_wp: :redface_wp: :cry_wp: :evil_wp: :twisted_wp: :rolleyes_wp: :wink_wp: :exclaim_wp: :question_wp: :idea_wp: :arrow_wp: :neutral_wp: :mrgreen_wp: :annoyed_tb: :blink_tb: :blush_tb: :bye_tb: :clap_tb: :cool1_tb: :drunk_tb: :devil_tb: :doh_tb: :down_tb: :dry_tb: :dunce_tb: :flush_tb: :guns_tb: :furious_tb: :glurps_tb: :happy_tb: :huh_tb: :innocent1_tb: :jittery_tb: :smoke_tb: :king_tb: :laugh_tb: :lol_tb: :mad_tb: :mellow_tb: :nono_tb: :help_tb: :ohmy_tb: :ponder_tb: :rolleyes_tb: :sad_tb: :shock_tb: :sleep_tb: :thumbup_tb: :smile1_tb: :surrender_tb: :tongue1_tb: :tongue2_tb: :unsure_tb: :wacko_tb: :thumbdown_tb: :wink1_tb: :wub_tb: :cool2_tb: :cry_tb: :embarassed_tb: :foot_in_mouth_tb: :wallbash_tb: :frown_tb: :innocent2_tb: :kiss_tb: :laughing_tb: :money_mouth_tb: :sealed_tb: :smile2_tb: :surprised_tb: :tongue3_tb: :undecided_tb: :smiley2_tb: :yell_tb: :) :) :D :x :P 8) 8x 8P :o 8O :( :? ;) :!: :?: :| :lol_ee: :smirk1_ee: :rolleyes_ee: :tongue_laugh_ee: :tongue_rolleye_ee: :tongue_wink_ee: :rasberry_ee: :ohh_ee: :grrr_ee: :gulp_ee: :ohoh_ee: :embarrassed_ee: :sick_ee: :shuteye_ee: :hmm1_ee: :angry_ee: :zip_ee: :kiss_ee: :shock_ee: :smirk2_ee: :grin2_ee: :hmm2_ee: :vampire_ee: :snake_ee:

Beitragsnavigation

« | »

SetTextSize SetPageWidth