06.03.06Wordpress Kommentare nummerieren

Ich wurde danach gefragt, wie ich die Kommentare meines Blogs durchnummeriere (ich verwende keine geordnete Listen OL). Das ist ganz einfach, benötigt werden nur drei Zeilen PHP in der Datei wp-comments.php.

Zuerst definiert man eine Variable, in meinem Beispiel “cnr”:

...
<?php if ($comments) { ?> <--Originalzeile aus
wp-comments.php-->
<?php
  $cnr = 1;
?>
...

Dort wo die Nummer erscheinen soll gibt man den Wert der Variable aus (echo("$cnr")):

...
<span class="cnr" title="Nummer des Kommentars">
<?php echo("$cnr"); ?> </span>
...

Ein SPAN-Element habe ich verwendet, um die Nummer über CSS optisch anpassen zu können.

Am Ende muss noch die Variable um 1 hochgezählt werden, damit - wenn vorhanden - der nächste Kommentar die Nummer zwei bekommt ($cnr++).

...
<?php $cnr++; ?>
<?php } // end for each comment ?> <--Originalzeile aus
wp-comments.php-->
...

Die Zeilen, die was mit der “$cnr” zu tun haben befinden sich alle zwischen < ?php foreach ($comments as $comment) { ?> und < ?php } // end for each comment ?>, also innerhalb der Kommentarschleife.

Bookmarks

Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • del.icio.us
  • DotNetKicks
  • Furl
  • MisterWong
  • NewsVine
  • Spurl
  • Technorati

12 Antworten

  1. macx am Mrz 6, 2006 | Reply

    Sauberer wäre doch “echo $cnr;”. ;-) Mit einer leichten Modifikation könnte man dann auch rückwärts zählen lassen, falls der neueste Eintrag oben sein sollte (zum Beispiel in Foren oder in Gästebüchern.

  2. Jens am Mrz 6, 2006 | Reply

    Das geht aber auch effizienter, vor allem das “$cnr” ist daneben, weil dann der String ausgewertet wird und Speicher dafür zusätzlich alloziert wird.

    also besser

    // oder falls man was gegen Short-Tags hat:

  3. Jens am Mrz 6, 2006 | Reply

    Tja der Code-Tag macht wohl was er soll, gemeint war

    [?= $cnr++; ?]

    oder

    [php echo $cnr++; ?]

    [] entsprechen dabei dann nat. den spitzen Klammern.

  4. Nadja am Mrz 6, 2006 | Reply

    Hallo Björn,
    ich hatte es ganz vergessen, mich zu bedanken:
    Vielen Dank für den Tipp. Und schön, dass du ihn anderen zugänglich machst.

    Allerdings habe ich noch etwas anzumerken: Du meist sicher das Template comments.php im gewählten Theme, denn eine wp-comments.php existiert nicht.

  5. Björn am Mrz 6, 2006 | Reply

    Aber es funktioniert. Wie man am eigenen PHP-Code sieht, bin ich kein Programmierer :-)

    @Nadja: Bei mir heißt sie wp-comments.php. Kann aber auch sein, dass es in WP 2.0 anders ist. Da muss ich zu meiner Schande gestehen, dass ich mich schon die ganze Zeit um das Update drücke.

  6. Knut Karnapp am Mrz 6, 2006 | Reply

    Ich mache es genauso und hab heute einen Beitrag geschrieben zur Erweiterung des Themas. Auf Wunsch also der manuelle Trackback. Ich wünsch dir gutes Gelingen im Kampf gegen die Spammer.

  7. Horst Scheuer am Mrz 6, 2006 | Reply

    Nicht schlecht deine Idee die Kommentare zu nummerieren.

  8. Michel am Mrz 7, 2006 | Reply

    Vielen Dank für die Erklärung.

  9. Marcel Widmer am Apr 11, 2006 | Reply

    Danke für den Kniff!

    Nur eine Frage (an die ganze Runde): kann man das nicht im eigenen Template einbauen oder als Plugin lösen (ich kann’s nicht)?

    Ich mag nämlich nicht am eigentlichen WP-Code rumschrauben. Aus Erfahrung weiss ich, dass ich bei einem Update die Änderungen meist vergesse und somit nicht mehr nachführe.

  10. Test am Jan 1, 2007 | Reply

    Das ist leider nur ein Test. Tschuldigung.

Mitreden? Dann schreibe einen Kommentar!

* = Pfichtfelder

Markup Webdesign Blog

Markup ist das Blog von Björn Seibert. Mehr
Impressum | Kontakt

Feed abonnieren