Meistgelesene Artikel anzeigen ohne Plugin

Wer die beliebtesten Inhalte seines Blogs präsentieren möchte, muss nicht zu schweren Plugins greifen. Jede Erweiterung belastet die Performance und birgt Sicherheitsrisiken. Das Tracking der Seitenaufrufe eines Beitrags lässt sich mit wenigen Zeilen Code selbst realisieren. Wir zeigen dir, wie du die „Most Viewed Posts“ direkt über die functions.php steuerst.

  • Zähl-Logik: Code in die functions.php kopieren, der bei jedem Aufruf ein Custom Field (wp_post_views_count) hochzählt.
  • Trigger setzen: Die Funktion in der single.php innerhalb des Loops aufrufen.
  • Ausgabe: Eine WP_Query nutzen, um die Beiträge absteigend nach dem Meta-Wert zu sortieren und anzuzeigen.
  • Vorteil: Volle Kontrolle, maximale Geschwindigkeit und DSGVO-konform.

Die von uns gezeigte Variante ist einfach und für Anfänger gedacht. Eine Profi-Variante findest du beim Kollegen Stephan.

Warum auf Plugins verzichten?

Plugins wie „WP-PostViews“ ermöglichen dir die benötigte Funktion, bringen aber oft zusätzlichen Ballast mit. Für ein einfaches Ranking reicht es völlig aus, die WordPress-eigene Datenbank-Struktur der Custom Fields (Metadaten) zu nutzen. Das spart nicht nur Datenbank-Abfragen beim Laden der Seite, sondern hält dein Backend sauber.

Die technische Umsetzung: meistgelesene Artikel anzeigen

Die Umsetzung erfolgt in drei logischen Schritten. Zuerst legen wir das Fundament in der Logik deines Themes, verknüpfen dieses dann mit deinen Blog-Beiträgen und erstellen am Ende die sichtbare Ausgabe für deine Besucher. Du benötigst dafür lediglich Zugriff auf deine Theme-Dateien (am besten via Child-Theme) und einen Texteditor.

1. Die Zähl-Funktion (Backend)

Zuerst müssen wir WordPress beibringen, die Aufrufe überhaupt zu registrieren. Der folgende Code prüft, ob das Feld bereits existiert, und erhöht den Wert bei jedem Laden des Artikels um den Wert 1. Füge diesen in deine functions.php ein.

/************************************
    Post-Views
************************************/
function dwp_track_post_views($postID) {
    $count_key = 'wp_post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count == ''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    } else {
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

2. Den Zähler aktivieren (Template)

Damit der Zähler weiß, wann ein Leser einen Artikel öffnet, platzieren wir den Aufruf in der single.php. Such dort nach dem Start des Loops (while (have_posts())) und füge dies ein:

dwp_track_post_views(get_the_ID());

3. Die Top-Beiträge ausgeben

Um die Liste (z.B. in der Sidebar) anzuzeigen, sortieren wir die Beiträge nach dem numerischen Wert unseres Custom Fields:

$args = array(
    'posts_per_page' => 5,
    'meta_key' => 'wp_post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC'
);
$popular_posts = new WP_Query($args);
// Hier folgt der Loop für die Anzeige...

Insbesondere die Ausgabe kann sehr dynamisch verwendet werden, denn wir haben ja nun einen allgemeinen Zähler.

Das Anzeigen der meistgelesenen Artikel ohne Plugin ist ein Paradebeispiel für „Lean Development“ in WordPress. Du nutzt vorhandene Bordmittel, behältst die Hoheit über deinen Code und verbesserst die Ladezeit deiner Seite. Mit ein wenig CSS lässt sich die Liste zudem perfekt in dein bestehendes Design integrieren, ohne auf die starren Layout-Vorgaben eines Plugins angewiesen zu sein.

Analyse: Aufrufe in der Beitragsliste anzeigen

Damit die neue Spalte „Aufrufe“ in deiner Übersicht erscheint, müssen wir zwei Dinge tun: Die Spalte registrieren und den entsprechenden Wert aus der Datenbank ziehen.

1. Die Spalte zur Übersicht hinzufügen

Mit diesem Filter, der ebenfalls seinen Platz in der functions.php erhält, fügen wir dem Tabellen-Header im Backend eine neue Spalte hinzu.

// Spalte "Aufrufe" im Backend registrieren
function dwp_add_views_column($columns) {
    $columns['post_views'] = 'Aufrufe';
    return $columns;
}
add_filter('manage_posts_columns', 'dwp_add_views_column');

2. Den Wert in die Spalte füllen

Dieser Code sorgt dafür, dass WordPress für jede Zeile den Wert des Custom Fields wp_post_views_count ausliest und anzeigt.

// Den Wert (Views) in die Spalte ausgeben
function dwp_display_views_column($column, $post_id) {
    if ($column === 'post_views') {
        $views = get_post_meta($post_id, 'wp_post_views_count', true);
        echo ($views != '') ? $views : '0';
    }
}
add_action('manage_posts_custom_column', 'dwp_display_views_column', 10, 2);

3. Die Spalte sortierbar machen (Optional aber empfohlen)

Damit du deine Beiträge mit einem Klick nach den meistgelesenen sortieren kannst, ist dieser Zusatz nötig:

// Spalte sortierbar machen
function dwp_make_views_column_sortable($columns) {
    $columns['post_views'] = 'post_views';
    return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'dwp_make_views_column_sortable');

Durch diese Ergänzung wird dein WordPress-Backend zu einem kleinen Analyse-Tool. Du siehst direkt neben dem Datum und dem Autor, wie oft ein Beitrag aufgerufen wurde. Das spart den Umweg über externe Tools, wenn du nur mal schnell wissen willst, wie ein neuer Artikel ankommt.

Weitere Optimierungen der Messfunktion

Das Grundgerüst steht! Jetzt verpassen wir der Funktion den Feinschliff. Rohe Zahlen in der Datenbank sind ein guter Anfang, aber erst mit präzisen Daten und einer klaren Visualisierung steuerst du dein Projekt wirklich effizient.

Verfälschung der Statistik verhindern

Damit deine eigenen Aufrufe die Statistik nicht nach oben treiben, ergänzen wir eine Abfrage. Der Zähler wird nur dann aktiv, wenn der Besucher kein Administrator ist.

Hierfür ersetzt du den Aufruf in deiner single.php durch diesen Code:

// Zählt nur, wenn der User NICHT eingeloggt ist oder KEINE Admin-Rechte hat
if ( !current_user_can('edit_posts') ) {
    dwp_track_post_views(get_the_ID());
}

Hinweis: edit_posts ist eine Berechtigung, die Admins und Redakteure haben. So bleiben die internen Aufrufe außen vor.

Erfolgreiche Artikel auswerten ohne Plugin

Wer wissen möchte, welche Inhalte bei seiner Zielgruppe wirklich ankommen, muss nicht zwangsläufig auf datenhungrige Plugins oder komplexe Analyse-Tools setzen. Wie du siehst, reichen ein paar gezielte Zeilen Code aus, um ein schlankes, performantes und DSGVO-konformes Tracking direkt in WordPress zu integrieren.

Du hast es trotz Anleitung nicht hinbekommen, deine WordPress Website schimpft weiterhin mit dir und bereitet dir Probleme bei diesem Thema? Kontaktiere uns gern und wir helfen dir im 1:1 direkt mit deinen Fragen weiter. Telefonisch, per Bildschirmübertragung oder per Mail, du hast die Wahl.

Solltest du mal nicht weiterkommen und dein WordPress macht schlicht nicht was du möchtest? Hierfür kannst du neben den Infos aus unseren Beiträgen auch direkten Kontakt mit uns aufnehmen. Schreibe uns einfach dein Anliegen oder beschreibe Problem und wir schauen gemeinsam drüber und finden eine Lösung für dich. Sobald wir deine Angaben haben, schätzen wir vorher grob den Aufwand ab und vereinbaren dann einen Termin mit dir, in welchem wir telefonisch oder live mit Bildschirmübertragung auf deine Fragen eingehen werden. Support per Mail ist natürlich auch möglich.

Probiere es gerne aus, wir freuen uns auf deine Anfrage.



    Erkunde weitere Beiträge

    Schreibe einen Kommentar