Jährliche / monatliche Anzahl der Beiträge in WordPress per MySQL ermitteln

Wer wissen möchte, wie viele Beiträge in den letzten Jahren im eigenen Blog veröffentlicht wurden, der kann dafür die WordPress-eigenen Funktionen nutzen und sich z.B. eine praktische Unterseite dafür aufbauen (in etliches Themes schon vorhanden per archive.php). Da mir das für den Zweck aber übertrieben schien (und ich zudem einen Prozess mit einem möglichst kleinen von WordPress unabhängigen Skript automatisieren wollte), habe ich das Gleiche schnell mit einer einfachen Abfrage „hart“ auf die Datenbank gemacht. Hier die ensprechende SQL-Abfrage, die auch zum Ziel führt:

SELECT YEAR(post_date) AS jahr, COUNT(id) AS anzahl FROM `wp_posts` WHERE post_type='post' AND post_status='publish' GROUP BY jahr ORDER BY jahr ASC

Uns interessieren hier also die Einträge in der Posts-Tabelle vom Typ „post“ (also keine Seiten, Revisionen oder Bilder etc.) die mit dem Status „publish“ (veröffentlicht) versehen sind. Diese werden dann noch jährlich gruppiert und in Reihenfolge der Jahre geordnet ausgegeben. Wer eine monatliche Aufstellung erhalten möchte, erweitert das einfach entsprechend und hat eine etwas längere Liste:

SELECT DATE_FORMAT(post_date, '%Y-%m') AS jahrmonat, COUNT(id) AS anzahl FROM `wp_posts` WHERE post_type='post' AND post_status='publish' GROUP BY jahrmonat ORDER BY jahrmonat ASC

Eine permanente Statistik für’s eigene Blog lässt sich am einfachsten über wp_get_archives() (mit type=monthly und show_post_count=true) basteln oder eine bzw. mehrere wp_query-Abfrage(n) die dann zusammengefasst werden.

Gabriel arbeitet seit 2003 als selbständiger Webentwickler und Berater für Marketing und Suchmaschinenoptimierung. Er ist am einfachsten per E-Mail unter gabriel [ät] suralin.de zu erreichen. Außerdem freut er sich über Kontaktanfragen auf Twitter und Facebook.

One thought on “Jährliche / monatliche Anzahl der Beiträge in WordPress per MySQL ermitteln

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert