Kuratierte Linksammlung für Webdesigner und -entwickler.
3 Beispiele zum Anzeigen Verwandter Artikel ohne Plugin

WordPress: Verwandte Artikel ohne Plugin anzeigen

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.

Anzeige

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
  2. Verwandte Artikel nach Autor anzeigen

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.

  1. Öffne dazu die Datei single.php.
    • Pfad: /dein-wordpress/wp-content/themes/dein-theme/single.php
  2. 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 <h4>Keine verwandten Artikel gefunden!</h4> ebenso in einem Format und in einem Text deiner Wahl. (Zeile 24)

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.

  1. Erstelle daher ein neues Verzeichnis in deinem themes-Ordner. In diesem Beispiel nenne ich das Verzeichnis components.
  • 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.

  1. Öffne dazu die datei functions.php.
    • Pfad: /dein-wordpress/wp-content/themes/dein-theme/functions.php
  2. 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(); ?>
    

Abspeichern, fertig.

Feedback

Kennst du bessere- oder sauberere Möglichkeiten für die pluginfreie Einbindung von Verwandte Artikel? Ich freue mich auf dein Feedback!

Frischer Input für Designer. Jeder Abonnent erhält das kostenlose Bundle aus 50 Photoshop Device-Mockups und 40 Responsive WordPress-Themes.

1x pro Woche. Kein Spam. Jederzeit kündbar.
Jonathan Torke
Jonathan Torke

Auf pixeltuner.de teile ich aktuelle Ressourcen für Webdesigner und -entwickler. Du findest mich auch auf deviantART. PayPal-Kaffeespende.

5 Antworten auf "WordPress: Verwandte Artikel ohne Plugin anzeigen"
    • Jonathan

      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 die single.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 über include. 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

  • Eric:

    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?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verpasse keine News!

Du erhältst ein kostenloses Bundle aus 50+ WordPress-Themes und PSD Device-Mockups.

1x pro Woche. Jederzeit kündbar.
Anzeige