Erfahrungsgemäß sind Leser (Stammleser und neue Leser) eines Blogs daran interessiert die verwandten Beiträge eines bestimmten Artikels zu besuchen. In einem solchen Fall sollte der Fokus der Navigation auf die Interessen des Lesers gerichtet sein. Zu diesem Zweck findest du bei WordPress eine Reihe an guten Plugins, die dir helfen die Navigation deines Blogs zu erleichtern.
Ob nun die pluginfreie Einbindung für das Anzeigen verwandter Artikel hierfür sinnvoller ist als der Einsatz von einem Plugin, kann meiner Ansicht nach nicht diskutiert werden. Projekte sind mit ihren Anforderungen einfach zu unterschiedlich.
In diesem Artikel möchte ich dir an drei Beispielen zeigen, wie einfach es ist, die verwandten Artikel deines WordPress Blogs ohne Plugin anzuzeigen.
Sprungmarken:
1. Verwandte Artikel anzeigen
Folgendes Beispiel erzeugt eine ungeordnete Auflistung verwandter Artikel im Zusammenhang des aktuellen Artikels. Die Anzeige verwandter Artikel ergibt sich aus den, im Artikel, zugewiesenen ersten Tags. In diesem Beispiel wird die Ausgabe der Auflistung verwandter Artikel auf maximal fünf beschränkt.
Beispiel 1: Code direkt in die single.php einfügen
Der schnellste Weg Verwandte Artikel ohne Plugin als Funktion in dein WordPress-Theme zu integrieren, ist die direkte Einbindung von Code in die Datei single.php
.
- Öffne dazu die Datei
single.php
.- Pfad:
/dein-wordpress/wp-content/themes/dein-theme/single.php
- Pfad:
- Füge folgenden Code an die gewünschte Stelle in die
single.php
:<h3>Verwandte Artikel:</h3> <ul> <?php //for use in the loop, list 5 post titles related to first tag on current post $backup = $post; // backup the current object $tags = wp_get_post_tags($post->ID); $tagIDs = array(); if ($tags) { $tagcount = count($tags); for ($i = 0; $i < $tagcount; $i++) { $tagIDs[$i] = $tags[$i]->term_id; } $args=array( 'tag__in' => $tagIDs, 'post__not_in' => array($post->ID), 'showposts'=>5, 'caller_get_posts'=>1 ); $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li> <?php endwhile; } else { ?> <h4>Keine verwandten Artikel gefunden!</h4> <?php } } $post = $backup; // copy it back wp_reset_query(); // to use the original query again ?> </ul>
Abspeichern.
Verwandte Artikel anpassen:
- Um die Überschrift für Verwandte Artikel zu bearbeiten, ändere dazu
<h3>Verwandte Artikel:</h3>
in einem Format und in einem Text deiner Wahl. (Zeile 1)- Um die Anzahl der verwandten Artikel zu ändern, gehe zu
'showposts'=>5
. Hier kannst du die Zahl 5 in eine beliebige Zahl ändern. (Zeile 15)- Du kannst außerdem den Text und Format anpassen, wenn kein Verwandter Artikel gefunden worden ist. Ändere dazu
ebenso in einem Format und in einem Text deiner Wahl. (Zeile 24)
<h4>
Keine verwandten Artikel gefunden!</h4>
Beispiel 2: Theme-Datei erstellen
Im Prinzip unterscheidet sich diese Möglichkeit von der vorigen nur in einem Punkt – Die single.php
bleibt übersichtlich. Du fügst hierbei lediglich eine Zeile Code in die single.php
, anstatt die 30 Zeilen aus Beispiel 1.
Ich empfehle die Anwendung dieses Beispiels. Der Grund ist einfach:
- umfangreiche Theme-Dateien deines WordPress-Themes werden zum einen schnell unübersichtlich für die Bearbeitung.
- Würde ich zum anderen den kompletten Code in jede angesprochene Theme-Datei erneut einbinden, müsste ich auch an entsprechender Stelle die notwendigen Anpassungen machen. In diesem Fall lade ich den Code über
include (TEMPLATEPATH . '/datei-pfad');
.
Neues Verzeichnis erstellen
Je nach Komplexität deiner Theme-Dateien empfiehlt es sich also darüber nach zu sinnen, Theme-Erweiterungen (Share Funktion von Sozialen Netzwerken, Autor-Beschreibungen, Post Meta-Daten, Kommentare etc.) in eigene Theme-Dateien zu organisieren.
- Erstelle daher ein neues Verzeichnis in deinem
themes
-Ordner. In diesem Beispiel nenne ich das Verzeichniscomponents
.
- Pfad:
/dein-wordpress/wp-content/themes/dein-theme/components
- Erstelle nun eine neue PHP-Datei und füge den Code aus dem ersten Beispiel (siehe oben) in diese Datei. Speicher die Datei z.Bsp. als
related-posts.php
ab. - Lade die Datei
related-posts.php
in das soeben erstellte Verzeichnis/components
. - Füge nun folgenden Code in die Datei
single.php
an die gewünschte Stelle:<?php include (TEMPLATEPATH . '/components/related-posts.php'); ?>
Abspeichern, fertig.
Diesen Codeschnipsel kannst du natürlich an jede gewünschte Stelle in deinem Theme einfügen. Beispielsweise kannst du deine verwandten Artikel in der Sidebar, Footer etc. ausgeben lassen.
2. Verwandte Artikel nach Autor anzeigen
Wenn du einen WordPress Blog betreibst, auf den gleich mehrere Autoren Artikel publizieren, kannst du bei einem Artikel die verwandten Artikel nach den aktuellen Autor anzeigen lassen. So werden nur die Artikel für diesen Zweck herangezogen, die vom Autor verfasst wurden, dessen Artikel aktuell vom Browser geladen worden ist. Auch bei diesem Beispiel ergibt sich die ungeordnete Auflistung verwandter Artikel nach Autor aus den, im Artikel, zugewiesenen ersten Tags.
Verwandte Artikel nach Autor
Um Verwandte Artikel nach Autor anzeigen zu lassen, gehe wie folgt vor.
- Öffne dazu die datei
functions.php
.- Pfad:
/dein-wordpress/wp-content/themes/dein-theme/functions.php
- Pfad:
- Füge folgenden Code an gewünschte Stelle:
function get_related_author_posts() { global $authordata, $post; $authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ), 'posts_per_page' => 5 ) ); $output = '<h3>Verwandte Artikel:</h3><ul>'; foreach ( $authors_posts as $authors_post ) { $output .= '<li><a href="' . get_permalink( $authors_post->ID ) . '">' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '</a></li>'; } $output .= '</ul>'; return $output; }
Abspeichern.
Verwandte Artikel nach Autor anpassen:
- Über
posts_per_page' => 5
kannst du die Anzahl der angezigten Verwandten Artikel bestimmen. Hier kannst du die Zahl 5 in eine beliebige Zahl ändern (Zeile 4).- Um die Überschrift für Verwandte Artikel nach Autor zu bearbeiten, ändere dazu
<h3>Verwandte Artikel:</h3>
in einem Format und in einem Text deiner Wahl. (Zeile 6)
- Füge folgenden Code an die gewünschte Stelle in deinem WordPress-Theme. Zum Beispiel in die Datei
single.php
.- Pfad:
/dein-wordpress/wp-content/themes/dein-theme/single.php
<?php echo get_related_author_posts(); ?>
- Pfad:
Abspeichern, fertig.
Feedback
Kennst du bessere- oder sauberere Möglichkeiten für die pluginfreie Einbindung von Verwandte Artikel? Ich freue mich auf dein Feedback!
Kommt mir so bekannt vor: http://www.wplove.de/tipps-tricks/verwandte-artikel-ohne-plugin-anzeigen/950/ ;-)
Nur deine Erweiterung durchblicke ich noch nicht ganz. ;-)
Hi Adrian,
ja ich kenne deinen Artikel zu diesem Thema. Aber auf diesem basiert dieser Artikel nicht.
Mit der
include
-Erweiterung (Falls du das meinst) wollte ich nur zeigen, wie man Gleiches umsetzt. Nur das in diesem Fall diesingle.php
Code-entlastet bleibt. Würde ich den kompletten Code in jede angesprochene Theme-Datei erneut einbinden, müsste ich auch an entsprechender Stelle alle Anpassungen machen. In diesem Fall lade ich den Code überinclude
. So mache ich das auch für den Header, Sidebar, Footer etc..Aber wie gesagt Adrian, ich freue mich über Verbessungsvorschläge. Denn wenn ich es besser machen kann, will ich es natürlich wissen.
Lieben Gruß, Jonathan
Habe den Code „Verwandte Artikel:…“ in eine Extra PHP datei eingefügt und dann über „<?php include (TEMPLATEP.." eingefügt, soweit funktionierts. Mein Problem ist jetzt aber das wenn keine Verwandten Artikel verfügbar sind wird "Keine verwandten Artikel gefunden!" nicht angezeigt. Woran könnte es liegen?