WordPress & Webwork - perun.net



WordPress: Anzahl der Artikel & Kommentare anzeigen

Von am 10. 05. 2012 um 15:48 – Aktualisiert am 17.05.2012 um 13:48

Aktualisierung der Anleitung, wie man die Anzahl der veröffentlichten Artikel, Kommentare und Kategorien im Frontend ausgibt und die Zahlen richtig formatiert.

Wie ich im Footer dieser Website die Anzahl der veröffentlichten Artikel, Kommentare und Kategorien ausgebe habe ich schon mal im Dezember letzten Jahres geschrieben.

Ich musste aber den Code von damals leicht anpassen und hier ist das neue Ergebnis:

<li>Artikel: <?php $nr_art = wp_count_posts('post'); $nr_art = $nr_art->publish; echo number_format($nr_art, 0, '', '.'); ?></li>
<li>Kategorien: <?php $nr_kat = wp_count_terms('category'); echo number_format($nr_kat); ?></li>
<li>Kommentare: <?php $nr_komm  = get_comment_count(); $nr_komm  = $nr_komm['approved']; echo number_format($nr_komm, 0, '', '.'); ?></li>

Der ursprüngliche Code hat nicht mehr funktioniert seit dem Serverwechsel. Ich vermute mal das lag daran, dass ich vorher PHP 5.2.x und jetzt PHP 5.3.12 und somit verursachten die Parameter-Angaben des alten Codes Fehlermeldungen.

Hier noch einmal die entsprechende Stelle im alten Code:

echo number_format($nr_art, '', '', '.')

Mit number_format formatiert man eine Zahl: Anzahl der Dezimalzeichen, Dezimaltrennzeichen und der Tausender-Trennzeichen. Gibt man (k)einen Parameter an echo number_format($nr_art), dann greift PHP hier auf die Standardangaben zurück und das heißt: Komma als Tausender-Trennzeichen und Punkt als Dezimaltrennzeichen … genau umgekehrt wie im deutschen und einigen anderen Ländern von Kontinentaleuropa.

Daher muss der entsprechende Abschnitt in meinem Fall so ausschauen:

echo number_format($nr_art, 0, '', '.')

Das heißt übersetzt: gebe die Zahl aus, ohne Nachkommastellen – was auch logisch ist, da es keine Viertelkommentare und Drittelartikel gibt – ohne Dezimaltrennzeichen, aber mit Punkt als Tausender-Trennzeichen.

Und wo lag jetzt genau der Fehler gegenüber der alten Version?


// alt
echo number_format($nr_art, '', '', '.')

// neu
echo number_format($nr_art, 0, '', '.')

Ich hoffe die Hervorhebung ist deutlich genug. Das PHP auf dem neuen Server störte sich am zweiten Parameter. Anstatt einem leeren Wert ('') wird eine Zahl erwartet.

Diesen Artikel weiterempfehlen oder später lesen:

auf Kindle (später) lesen

Premium WordPress Themes

Verwandte Artikel:

 — 


3 Kommentare »»

  1. 1._nico

    Kommentar vom 11.05.2012 um 08:40

    Hi Vladimir,
    DANKE für die 3 Codezeilen. ;-)

    Ich hab's gleich mal bei mir in den Footer gehauen. 8)

    Gruß Nico

  2. 2.codestyling

    Kommentar vom 11.05.2012 um 14:36

    Da wäre ich doch für eine lokalisierbare Ausgabe der Zahlenwerte mittels:

    function number_format_i18n( $number, $decimals = 0 )

    WordPress bringt das schon eine Weile mit sich (Version >= 2.3) und kümmert sich per Sprachdatei korrekt darum, ob die aktuelle Sprache nun Kommata, Punkte oder sonst was braucht als Dezimaltrenner.

  3. 3.azella

    Kommentar vom 08.10.2012 um 11:08

    Danke dir, hatte gerade ein Problem mit der tausender Stelle.
    Hat geholfen.

    Grüße

Hinweis:
300+ Professionelle WordPress-Themes
Premium WordPress-Themes, 38 davon mit deutschem Support

Einen Kommentar hinterlassen




XHTML (folgende Tags sind erlaubt): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> . Kommentar-Vorschau ist aktiviert (Javascript wird benötigt).

Code-Beispiele: damit die Code-Beispiele richtig angezeigt werden müssen die Sonderzeichen maskiert werden (z. B. < zu &lt;).



Weblog der perun.net webwork gmbh mit Artikeln zum Thema WordPress, Webwork, und Internet.