WordPress: Ähnliche Artikel anzeigen (ohne Plugin)

Eine gute Möglichkeit in eurem WordPress-Blog die interne Verlinkung zu optimieren, als auch die Besuchszeit eurer Besucher zu erhöhen, ist es, unter einem Artikel weitere zum Thema passende Artikel anzuzeigen. Ähnliche Artikel werden dabei im Allgemeinen anhand der Kategorie und/oder der Tags ermittelt.

Wer nicht unbedingt ein weiteres Plugin installieren möchte, erfährt in diesem Beitrag, wie sich zu einem Artikel ähnliche Artikel basierend auf den Tags anzeigen lassen.

Vorab ein Beispiel

Bevor ich euch den Code vorstelle, zuerst einmal ein Beispiel:

Beispiel: Ähnliche Artikel in WordPress anzeigen

Wer es ansprechender mag, kann auch noch die jeweiligen Artikel-Thumbnails anzeigen.

Code zum Ermitteln der ähnlichen Artikel

In die functions.php eures Themes, ist folgender Code einzufügen:

function get_related_posts($limit = 5)
{
    global $post;

    $tags = get_the_tags();

    if($tags)
    {
        $tag_ids = array();

        foreach($tags as $tag)
        {
            $tag_ids[] = $tag->term_id;
        }

        $args = array(
            'numberposts' => $limit,
            'tag__in' => $tag_ids,
            'exclude' => $post->ID
        );

        $related_posts = get_posts($args);

        $output = '';

        foreach($related_posts as $tmp_post)
        {
            setup_postdata($tmp_post);
            $title = get_the_title($tmp_post->ID);
            $output .= '<li><a href="'.get_permalink($tmp_post->ID).'" title="Artikel &bdquo;'.$title.'&ldquo; lesen">'.$title.'</a></li>';
        }

        wp_reset_postdata();
    }

    $output = !empty($output) ? $output : '<li>Keine ähnlichen Artikel gefunden.</li>';

    return '<ul>'.$output.'</ul>';
}
PHP - Datei: functions.php

Der erste Teil der Funktion (Zeile 3 - 22) dient dazu, basierend auf den Tags, themenrelavante Artikel aus der Datenbank zu holen. Hierfür ermitteln wir als erstes die Tags des Artikels (Zeile 5), den der Besucher aufgerufen hat und speichern die dazugehörigen Tag-IDs in einem Array (Zeile 9 - 14).

Anschließend feuern wir mittels der Funktion get_posts, der wir noch ein Array mit diversen Optionen übergeben, eine Datenbankanfrage (Zeile 16 - 22). Für die Anfrage legen wir fest, dass nur eine bestimmte Anzahl ($limit) von Artikeln aus der Datenbank geholt werden. Standardmäßig werden 5 themenrelevante Artikel ermittelt.

Weiterhin geben wir unsere Tag-IDs an und definieren, dass der aktuelle Artikel, den der Besucher aufgerufen hat, ausgeschlossen wird.

Im zweiten Teil (Zeile 24 - 38) fügen wir dann einfach unsere Ausgabe zusammen. Dabei erstellen wir uns eine Liste und fügen einen Link für alle ermittelten Artikel ein.

Code zum Anzeigen der ähnlichen Artikel

Um nun die Artikelliste unter euren Artikeln einzufügen, muss der folgende Code innerhalb der WordPress-Loop eingefügt werden:

echo get_related_posts(6);
PHP

In diesem Fall würden, wenn vorhanden, 6 themenrelevante Artikel angezeigt werden.

Fazit

Der vorgestellte Code dient natürlich wieder nur als Beispiel und kann entsprechend euren Wünschen angepasst werden.

Beispielsweise ist es auch denkbar noch das jeweilige Artikelbild (Thumbnail) mit anzuzeigen oder aber die ähnlichen Artikel nicht basierend auf den Tags, sondern auf Grundlage der Kategorie(n) zu ermitteln.

Aktualisierungshistorie:
  • 4. Mai 2012
    ursprüngliche Veröffentlichung in meinem ehemaligen Blog "Smart-Webentwicklung"
Feedback

Für Feedback zum Beitrag, seien es Fragen, Korrigierungen und/oder Anregungen, könnt ihr mir gerne eine Nachricht per E-Mail oder Mastodon schreiben (siehe Kontakt).