WordPress beliebte Artikel anzeigen: Quick-Start Tutorial
Vor einiger Zeit stand ich vor einer interessanten Herausforderung: Wie kann ich unter WordPress beliebte Artikel anzeigen lassen, die von dem Plugin “Statify” ermittelt wurden? Natürlich sollte dies automatisch passieren. Das WordPress-Plugin Statify sammelt zwar zuverlässig Zugriffsdaten, bietet aber keine direkte Möglichkeit, diese Informationen für die Besucher sichtbar zu machen.
Bei der Suche nach einer schlanken Lösung testete ich verschiedene WordPress-Plugins zur Anzeige beliebter Beiträge. Doch entweder waren sie überladen mit Features, die ich nicht benötigte, oder sie ignorierten komplett die bereits vorhandenen Statify-Daten. Besonders störend war die zusätzliche Datenbankbelastung durch redundante Tracking-Mechanismen.
Die Lösung? Ein eigens entwickeltes, performance-optimiertes WordPress-Snippet, das direkt mit der Statify-Datenbank kommuniziert. In diesem Tutorial zeige ich dir, wie du diese maßgeschneiderte Integration Schritt für Schritt umsetzt. Du lernst, wie du mit wenigen Zeilen Code und dem praktischen CodeSnippets Plugin eine automatische Anzeige deiner meistbesuchten Artikel einrichtest – ohne Performance-Einbußen und perfekt integriert in dein bestehendes Statify-Setup.
DarkWolfCave.de
Was dich in diesem Tutorial erwartet:
- 🚀 Performance-optimierter Code für WordPress
- 📊 Direkte Integration mit Statify-Daten
- 🔄 Automatisches Caching-System
- 🛠️ Einfache Implementation via CodeSnippets Plugin
Voraussetzungen für die WordPress Integration
Bevor wir mit der Implementierung beginnen, stelle sicher, dass folgende Komponenten verfügbar sind:
- WordPress Installation (Version 5.0+)
- Statify Plugin (installiert und aktiviert)
- CodeSnippets Plugin (empfohlen, aber nicht zwingend notwendig)
- Grundlegende PHP-Kenntnisse
Code Snippets Plugin: Die beste Wahl für Custom Code
Bevor wir mit dem eigentlichen Code beginnen, lass uns kurz über das Plugin “CodeSnippets” sprechen.
Es ist meine bevorzugte Methode zur Implementierung von Custom Code in WordPress, und das aus gutem Grund:
Warum Code Snippets?
- Sicherheit & Stabilität
- Syntax-Überprüfung verhindert PHP-Fehler
- Geschützter Code-Editor mit Highlighting
- Keine direkten Theme-Datei-Änderungen nötig
- Einfaches Management
- Zentrale Verwaltung aller Snippets
- Aktivieren/Deaktivieren mit einem Klick
- Snippets können kategorisiert werden
- Update-sicher
- Unabhängig vom Theme
- Überlebt WordPress-Updates
- Keine verlorenen Änderungen
Du wirst hier einen groben Überblick finden.
Allerdings biete ich dir auch noch etwas mehr Support an:
- Du benötigst persönlichen Support
- Du möchtest von Beginn an Unterstützung bei deinem Projekt
- Du möchtest ein hier vorgestelltes Plugin durch mich installieren und einrichten lassen
- Du würdest gerne ein von mir erstelltes Script etwas mehr an deine Bedürfnisse anpassen
Für diese Punkte und noch einiges mehr habe ich einen limitierten
VIP-Patreon Tarif
eingerichtet. Falls er dir dort zurzeit nicht angeboten wird,
kontaktiere mich bitte über Discord und wir finden eine Lösung!
Der Code im Detail
Lass uns den Code Schritt für Schritt durchgehen. Ich erkläre dir ein wenig, was jeder Teil macht. Solltest du weitere Fragen haben, dann kannst du diese gerne in den Kommentaren stellen oder auch direkt bei mir in Discord.
🔍 Wichtig: Du benötigst für dieses Snippet eine installierte und aktivierte Statify-Version. Denn zum Ermitteln der beliebtesten Artikel, nutze ich diese Daten.
1. Die Hauptfunktion: Datenabfrage mit Caching
Diese Funktion bildet das Herzstück unseres Snippets und implementiert mehrere wichtige Features:
- Caching mit WordPress Transients: Verhindert unnötige Datenbankabfragen
- Sichere SQL-Abfragen: Nutzt
wpdb->prepare
für SQL-Injection-Schutz - Flexibler Limit-Parameter: Anpassbare Anzahl der Artikel
function get_popular_statify_articles($limit = 5) { $popular_articles = get_transient('popular_statify_articles'); if (!$popular_articles) { global $wpdb; // Datenbankabfrage $query = $wpdb->prepare( "SELECT target, COUNT(*) as views FROM {$wpdb->prefix}statify GROUP BY target ORDER BY views DESC LIMIT %d", $limit ); $popular_articles = $wpdb->get_results($query); set_transient('popular_statify_articles', $popular_articles, 3600 * 6); } return $popular_articles; }
Was passiert hier?
- Sollte beim Aufruf kein Limit angegeben werden, wird hier per Default 5 gesetzt:
$limit = 5
– dies bewirkt, dass nur 5 beliebte Artikel angezeigt werden - Die Funktion prüft außerdem den Cache (Transients)
- Nur wenn keine gecachten Daten vorliegen, wird die Datenbank abgefragt
- Die Ergebnisse werden für 6 Stunden gecacht (
$popular_articles, 3600 * 6)
) - SQL-Injection wird durch
prepare
verhindert
2. Die Anzeigelogik
function display_popular_statify_articles($limit = 5) { $popular_articles = get_popular_statify_articles($limit); echo '<ul class="popular-articles">'; foreach ($popular_articles as $article) { $permalink = $article->target; $post_id = url_to_postid($permalink); $post = get_post($post_id); if ($post) { $title = $post->post_title; echo '<li><a href="' . esc_url($permalink) . '">' . esc_html($title) . '</a></li>'; } } echo '</ul>'; }
Wichtige Features:
- Die gefundenen beliebten Artikel werden in einer HTML-Struktur ausgegeben
- Sicherheits-Escaping für URLs und Titel (
esc_url($permalink) . '">' . esc_html($title)
) - Fehlerbehandlung für nicht existierende Posts
3. Der Shortcode für flexible Integration
function popular_statify_articles_shortcode($atts) { $atts = shortcode_atts(array('limit' => 5), $atts); ob_start(); display_popular_statify_articles($atts['limit']); return ob_get_clean(); } add_shortcode('popular_statify_articles', 'popular_statify_articles_shortcode');
Einsatzmöglichkeiten:
- In Beiträgen:
[[[popular_statify_articles]]]
- In Seiten:
[[[popular_statify_articles limit="3"]]]
- In Templates:
<?php echo do_shortcode('[[[popular_statify_articles]]]'); ?>
Du kannst natürlich bei jedem Aufruf die Anzahl der ausgegebenen beliebten Artikel angeben. Einfach an den Shortcode limit="ANZAHL"
anhängen.
4. Das kleine Styling
ul.popular-articles { list-style: none; padding: 0; } ul.popular-articles li { margin-bottom: 10px; } ul.popular-articles li a { display: block; text-align: right; } ul.popular-articles li a:hover { text-decoration: underline; }
Design-Features:
- Klare, aufgeräumte Darstellung
- Responsive Layout
- Hover-Effekte für bessere UX
- Rechtsbündige Ausrichtung
Du kannst dieses CSS in “Design-Customizer-Zusätzliches CSS” oder in Code Snippets Pro im Abschnitt CSS eintragen. Oder einfach ganz weglassen.
Implementation mit CodeSnippets
Der vollständige Source Code:
function get_popular_statify_articles($limit = 5) { // Versuche, die Daten aus dem Transient-Cache abzurufen $popular_articles = get_transient('popular_statify_articles'); // Überprüfen, ob der Transient nicht vorhanden oder abgelaufen ist if (!$popular_articles) { echo '<!-- Datenbankabfrage wird ausgeführt -->'; // Nachricht ausgeben global $wpdb; // Sicherstellen, dass die SQL-Abfrage sicher ist mit prepare $query = $wpdb->prepare( "SELECT target, COUNT(*) as views FROM {$wpdb->prefix}statify GROUP BY target ORDER BY views DESC LIMIT %d", $limit ); $popular_articles = $wpdb->get_results($query); // Daten in den Cache für 6 Stunden speichern (3600 Sekunden * 6 Stunden) set_transient('popular_statify_articles', $popular_articles, 3600 * 6); } else { echo '<!-- Daten werden aus dem Transient-Cache abgerufen -->'; // Nachricht ausgeben } return $popular_articles; } // Funktion zum Anzeigen der beliebtesten Artikel function display_popular_statify_articles($limit = 5) { $popular_articles = get_popular_statify_articles($limit); // Ausgabe der Artikel echo '<ul class="popular-articles">'; foreach ($popular_articles as $article) { $permalink = $article->target; $post_id = url_to_postid($permalink); $post = get_post($post_id); if ($post) { $title = $post->post_title; echo '<li><a href="' . esc_url($permalink) . '">' . esc_html($title) . '</a></li>'; } else { echo '<!-- Kein gültiger Post für URL: ' . esc_url($permalink) . ' gefunden -->'; } } echo '</ul>'; } // Shortcode zum Anzeigen der beliebtesten Artikel in einem Beitrag oder einer Seite function popular_statify_articles_shortcode($atts) { $atts = shortcode_atts(array('limit' => 5), $atts); ob_start(); display_popular_statify_articles($atts['limit']); return ob_get_clean(); } add_shortcode('popular_statify_articles', 'popular_statify_articles_shortcode');
Es gibt eine kostenlose und eine Pro-Version von CodeSnippets.
In der Regel reicht die kostenlose. Sollte es aber aktuell wieder eine Lifetime-Licence geben, dann würde ich zuschlagen (einmal bezahlen, für immer behalten). Die freie Version kannst du direkt in WordPress finden und installieren:
- Installation des Plugins
- WordPress Admin → Plugins → Neu hinzufügen
- Nach “Code Snippets” suchen
- Installieren und aktivieren
- PHP-Code hinzufügen
- Snippets → Neu hinzufügen
- Titel: “Beliebte Artikel via Statify”
- PHP-Code einfügen
- “Run snippet everywhere” auswählen
- Speichern und Aktivieren
- CSS-Styling hinzufügen (Code Snippets Pro)
- Neues Snippet erstellen
- Als CSS markieren
- Styling-Code einfügen
- Frontend-Scope wählen
- CSS-Styling hinzufügen (Customizer)
- Admin-Menü Design -> Customizer auswählen
- Zusätzliches CSS auswählen
- Styling-Code einfügen
- Veröffentlichen
Praxistipps und Optimierungen
Cache-Dauer anpassen
du kannst die Zeit selbst bestimmen, nach welcher eine neue Datenbankabfrage auf die beliebtesten WordPress-Artikel erfolgen soll. Zum Beispiel 6 Stunden bedeutet: Es wird eine Datenbankabfrage durchgeführt und das Ergebnis 6 Stunden gespeichert und ausgegeben. Dies reduziert die Datenbankabfragen deutlich.
Hier zwei Beispiele, in den Sourcecode baust du dann natürlich nur einen davon ein 😉
// Standard: 6 Stunden set_transient('popular_statify_articles', $popular_articles, 3600 * 6); // Beispiel für 24 Stunden set_transient('popular_statify_articles', $popular_articles, 3600 * 24);
Performance-Optimierung
- Cache-Dauer an deine Bedürfnisse anpassen
- Limit sinnvoll setzen (5-10 Artikel empfohlen)
- Regelmäßige Cache-Bereinigung einplanen (optional)
FAQ´s
Mit den Standard-Einstellungen werden die Daten alle 6 Stunden aktualisiert.
Du kannst diesen Wert aber jederzeit über die Cache-Dauer (Transient) anpassen.
Nein, durch das implementierte Caching-System wird die Datenbankabfrage nur alle 6 Stunden (Default – anpassbar) ausgeführt.
Zwischen den Aktualisierungen werden die Daten aus dem schnellen WordPress-Cache geladen.
Ja, das Snippet ist so entwickelt, dass es mit jedem Theme laufen sollte.
Sofern du das Plugin CodeSnippets benutzt, benötigst du auch kein Child-Theme.
Das mitgelieferte CSS kann bei Bedarf an dein Theme angepasst werden.
Da ich das Plugin CodeSnippets zum Implementieren des Codes benutze, bleiben alle Funktionen auch nach WordPress oder Theme-Updates erhalten. Dies ist einer der großen Vorteile gegenüber direkten Theme-Änderungen.
Du hast weitere Fragen oder benötigst Hilfe? Gerne versuche ich im Rahmen meiner Möglichkeiten, dich zu unterstützen. Dafür kannst du hier die Kommentar-Sektion (nicht vergessen, Antworten zu abonnieren) nutzen oder du schaust auf meinem Discord-Kanal vorbei.
Erweiterungsmöglichkeiten
1. Zusätzliche Metadaten anzeigen
Du kannst den Code etwas anpassen und zum Beispiel die Anzahl der Views mit ausgeben lassen:
// Erweiterte Anzeigefunktion mit Aufrufen echo '<li> <a href="' . esc_url($permalink) . '"> ' . esc_html($title) . ' <span class="views">(' . $article->views . ' Aufrufe)</span> </a> </li>';
2. Zeitraum begrenzen
Falls du immer nur einen bestimmten Zeitraum berücksichtigen möchtest, kannst du dies mit dieser Änderung durchführen:
(Beispiel 30 Tage)
$query = $wpdb->prepare( "SELECT target, COUNT(*) as views FROM {$wpdb->prefix}statify WHERE DATE(created) >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) GROUP BY target ORDER BY views DESC LIMIT %d", $limit );
Fazit
Mit diesem WordPress-Snippet hast du eine performante und flexible Lösung zur Anzeige deiner beliebtesten Artikel, basierend auf realen Besucherdaten aus Statify. Durch die Nutzung des CodeSnippets Plugins bleibt deine Implementation sauber und update-sicher.
🔍 Independent-Analytics: Du nutzt dieses Tool?! Dann kannst du auch direkt auf diese Daten zugreifen, um deine beliebtesten WordPress-Artikel anzeigen zu lassen. Schaue dir dazu einfach den passenden Beitrag von mir an!