#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

WordPress: Artikel-Views anzeigen (ohne Plugin)

Um die Anzahl der Seitenaufrufe, auch Views genannt, eines Artikels zu erfassen und anzuzeigen benötigt ihr nicht unbedingt ein Plugin.

Diese zusätzliche Funktionalität könnt ihr auch leicht selbst in eurem WordPress-Theme implementieren, in dem ihr die Seitenaufrufe einfach mithilfe eines Custom Fields speichert.

Die gespeicherten Seitenaufrufe (Views) eines Artikels könnt ihr dann z.B. unterhalb eures Artikels anzeigen lassen. Weiterhin besteht auch die Möglichkeit auf Grundlage der erfassten Seitenaufrufe die beliebtesten Artikel eures Blogs aufzulisten.

Code zum Speichern und Abrufen der Seitenaufrufe (Views) eines Artikels

Den folgenden Code könnt ihr in eure functions.php eures Themes einfügen:

class Post_Views
{
    const KEY = 'post_views_count';

    private static function get_post_views_count($post_id)
    {
        return get_post_meta($post_id, self::KEY, true);
    }

    public static function get_post_views($post_id)
    {
        $count = self::get_post_views_count($post_id);
        $count = $count === '' ? 0 : $count;

        return sprintf(_n('%d Aufruf', '%d Aufrufe', $count), $count);
    }

    public static function increment_post_views($post_id)
    {
        $count = self::get_post_views_count($post_id);

        if($count === '')
        {
            delete_post_meta($post_id, self::KEY);
            add_post_meta($post_id, self::KEY, 1);
        }
        else
        {
            update_post_meta($post_id, self::KEY, $count + 1);
        }
    }
}
PHP - Datei: functions.php

Die Klasse Post_Views stellt zwei öffentliche Methoden bereit, die zum Speichern und Abrufen der Seitenaufrufe (Views) eines Artikels dienen. Die Methoden sind dabei als static deklariert, da wir keine Instanz der Klasse benötigen. Generell bräuchten wir auch keine Klasse nutzen, aber ich bevorzuge es des Code sauber zu kapseln.

Kurze Erläuterung des Codes zum Erfassen der Seitenaufrufe (Views)

Zeile 3:
Konstante mit dem Schlüssel (Key) des Custom Fields.
Zeile 5 - 8:
Private Methode zum Ermitteln der Seitenaufrufe für den jeweiligen Artikel ($post_id) via get_post_meta.
Zeile 10 -16:
Methode zum Abrufen der Seitenaufrufe. Wenn noch keine Seitenaufrufe für den gegebenen Artikel vorhanden sind, dann wird $count eine 0 zugewiesen. Die _n-Funktion dient zur Unterscheidung, ob der Ausgabetext in Singular- oder Pluralform erfolgen soll. Wenn also $count eine 1 enthält, dann wird die Singularform ausgegeben: 1 Aufruf, ansonsten die Pluralform: 44 Aufrufe
Zeile 18 - 31:
Diese Methode dient zum Inkrementieren und Speichern der Seitenaufrufe. Falls noch keine Seitenaufrufe gespeichert wurden, wird ein neues Custom Field angelegt und eine 1 für die Seitenaufrufe gespeichert. Andernfalls wird die Anzahl der Seitenaufrufe einfach um 1 erhöht.

Artikel-Seitenaufrufe anzeigen / speichern

Um nun die Seitenaufrufe eines Artikels zu speichern bzw. die bestehende Anzahl zu erhöhen müsst ihr folgende Zeile Code innerhalb eurer WordPress-Loop, bei vielen Themes innerhalb der loop.php, einfügen:

Post_Views::increment_post_views(get_the_ID());
PHP - Datei: loop.php

Zum Anzeigen der Artikel-Views dient schließlich folgende Zeile Code:

echo Post_Views::get_post_views(get_the_ID());
PHP - Datei: loop.php

Fazit

Wenn ihr wirklich nur die Seitenaufrufe zu einem Artikel speichern und abrufen wollt, dann reicht der vorgestellte Code-Schnipsel völlig aus und ihr spart euch so die Installation eines unnötigen Plugins. Wenn ihr wollt, könnt ihr den Code auch noch insofern anpassen, als dass Seitenaufrufe die durch euch selbst bzw. einem Admin-Benutzer ausgelöst werden, nicht erfasst werden.

Basierend auf den Artikel-Seitenaufrufen (Views) könnt ihr euch auch eine Liste mit den beliebtesten bzw. meistgelesenen Artikeln erstellen.

Eine alternative Möglichkeit die beliebtesten Artikel in WordPress anzuzeigen, hatte ich bereits in dem Beitrag WordPress: Meistkommentierte Artikel anzeigen (ohne Plugin) vorgestellt, wobei dort die Liste basierend auf der Anzahl der Kommentare generiert wurde.

Aktualisierungshistorie:
  • 09. August 2012
    ursprüngliche Veröffentlichung in meinem ehemaligen Blog "Smart-Webentwicklung"