Related Posts ohne Plugin in WordPress

2 months ago, WordPress Themes, Views
Related Posts ohne Plugin in WordPress

Related Posts ohne Plugin in WordPress: Eine Anleitung für Deutschland

Die Anzeige von “Ähnlichen Beiträgen” unter einem WordPress-Artikel ist eine hervorragende Möglichkeit, die Verweildauer der Besucher auf Ihrer Website zu erhöhen und die Absprungrate zu senken. Indem Sie dem Leser relevante Inhalte vorschlagen, motivieren Sie ihn, länger zu bleiben und mehr Seiten zu besuchen. Während es zahlreiche Plugins gibt, die diese Funktion anbieten, ist es auch möglich, ähnliche Beiträge ohne Plugin in WordPress zu implementieren. Dieser Artikel erklärt, wie das in Deutschland funktioniert.

Warum Related Posts ohne Plugin?

Obwohl Plugins einfach zu installieren sind, bringen sie auch Nachteile mit sich. Jedes zusätzliche Plugin erhöht die Wahrscheinlichkeit von Inkompatibilitäten mit anderen Plugins oder dem Theme. Darüber hinaus kann die Anzahl der Plugins die Ladezeit Ihrer Website negativ beeinflussen. Eine schlankere Website, die weniger Ressourcen benötigt, ist sowohl für die Benutzererfahrung als auch für die Suchmaschinenoptimierung von Vorteil. Die Implementierung von Related Posts ohne Plugin ermöglicht Ihnen also:

  • Verbesserte Website-Performance
  • Weniger Abhängigkeit von Drittanbietern
  • Mehr Kontrolle über das Design und die Funktionalität

Die Grundlagen: Die Funktionen get_posts() und wp_query()

Um ähnliche Beiträge ohne Plugin anzuzeigen, müssen Sie Code in Ihre Theme-Dateien einfügen. Die WordPress-Funktionen get_posts() und wp_query() sind dafür die Werkzeuge der Wahl. Beide Funktionen ermöglichen es Ihnen, Beiträge basierend auf verschiedenen Kriterien abzurufen.

wp_query() ist die Haupt-Query-Klasse in WordPress und wird verwendet, um Datenbankabfragen zu erstellen. Sie ist sehr flexibel und erlaubt komplexe Suchanfragen. get_posts() ist eine einfachere Funktion, die intern wp_query() verwendet, um Beiträge abzurufen. Für unsere Zwecke ist get_posts() oft ausreichend, da sie einfacher zu handhaben ist.

Implementierung über Kategorien und Tags

Die einfachste Methode, ähnliche Beiträge ohne Plugin anzuzeigen, basiert auf den Kategorien und Tags des aktuellen Beitrags. Wir suchen nach anderen Beiträgen, die die gleichen Kategorien oder Tags verwenden. Hier ist ein Beispiel, wie das aussehen könnte:

Schritt 1: Die functions.php Datei bearbeiten

Öffnen Sie die functions.php Datei Ihres WordPress-Themes. Wichtig: Verwenden Sie ein Child Theme, um Änderungen an der functions.php Datei vorzunehmen. Direkte Änderungen am Parent Theme gehen bei einem Theme-Update verloren.

Schritt 2: Den Code hinzufügen

Fügen Sie den folgenden Code in Ihre functions.php Datei ein:


  function get_related_posts($post_id, $number_of_posts = 5) {
    $categories = wp_get_post_categories($post_id);
    $tags = wp_get_post_tags($post_id);

    $category_ids = array();
    foreach($categories as $category) {
      $category_ids[] = $category->term_id;
    }

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

    $args = array(
      'category__in' => $category_ids,
      'tag__in' => $tag_ids,
      'post__not_in' => array($post_id),
      'posts_per_page' => $number_of_posts,
      'orderby' => 'rand'
    );

    $related_posts = get_posts($args);

    if($related_posts) {
      echo '<h3>Ähnliche Beiträge</h3>';
      echo '<ul>';
      foreach($related_posts as $post) {
        echo '<li><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></li>';
      }
      echo '</ul>';
    }
  }
  

Dieser Code definiert eine Funktion namens get_related_posts(), die die ID des aktuellen Beitrags als Parameter entgegennimmt. Die Funktion ruft dann die Kategorien und Tags des Beitrags ab und erstellt eine $args Variable mit Suchkriterien. Wichtig ist, dass der aktuelle Beitrag (post__not_in) von der Suche ausgeschlossen wird, um eine Endlosschleife zu vermeiden. Die Funktion gibt dann eine Liste von ähnlichen Beiträgen aus.

Schritt 3: Die Funktion im Template aufrufen

Suchen Sie die Template-Datei, in der Sie die ähnlichen Beiträge anzeigen möchten. Dies ist in der Regel die single.php Datei oder eine ähnliche Datei, die für die Anzeige einzelner Beiträge zuständig ist. Fügen Sie den folgenden Code an der gewünschten Stelle ein:


  <?php get_related_posts(get_the_ID()); ?>
  

Dieser Code ruft die get_related_posts() Funktion auf und übergibt die ID des aktuellen Beitrags. Die Funktion gibt dann die Liste der ähnlichen Beiträge aus.

Implementierung über Custom Fields (ACF)

Advanced Custom Fields (ACF) ist ein beliebtes WordPress-Plugin, mit dem Sie benutzerdefinierte Felder zu Beiträgen, Seiten und anderen Inhaltstypen hinzufügen können. Wenn Sie ACF verwenden, können Sie ähnliche Beiträge basierend auf den Werten dieser Custom Fields anzeigen. Dies ist besonders nützlich, wenn Ihre Beiträge spezielle Eigenschaften haben, die nicht durch Kategorien oder Tags abgedeckt werden.

Voraussetzungen

Sie benötigen das Advanced Custom Fields (ACF) Plugin installiert und aktiviert.

Beispiel: Ähnliche Beiträge basierend auf einem “Genre” Custom Field

Angenommen, Sie haben ein Custom Field namens “genre” erstellt, das das Genre eines Films oder Buches speichert. Sie können ähnliche Beiträge anzeigen, indem Sie nach anderen Beiträgen suchen, die das gleiche Genre haben.

Schritt 1: Die functions.php Datei bearbeiten

Fügen Sie den folgenden Code in Ihre functions.php Datei ein (wiederum innerhalb eines Child Themes!):


  function get_related_posts_acf($post_id, $number_of_posts = 5) {
    $genre = get_field('genre', $post_id);

    if($genre) {
      $args = array(
        'post_type' => 'post', // oder 'page' oder ein anderes Post-Type
        'posts_per_page' => $number_of_posts,
        'post__not_in' => array($post_id),
        'meta_query' => array(
          array(
            'key' => 'genre',
            'value' => $genre,
            'compare' => '='
          )
        ),
        'orderby' => 'rand'
      );

      $related_posts = get_posts($args);

      if($related_posts) {
        echo '<h3>Ähnliche Beiträge</h3>';
        echo '<ul>';
        foreach($related_posts as $post) {
          echo '<li><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></li>';
        }
        echo '</ul>';
      }
    }
  }
  

Dieser Code definiert eine Funktion namens get_related_posts_acf(). Die Funktion ruft den Wert des “genre” Custom Field für den aktuellen Beitrag ab. Anschließend erstellt sie eine $args Variable mit Suchkriterien. Die meta_query Parameter geben an, dass nur Beiträge zurückgegeben werden sollen, deren “genre” Custom Field mit dem Wert des aktuellen Beitrags übereinstimmt. Die Funktion gibt dann eine Liste von ähnlichen Beiträgen aus.

Schritt 2: Die Funktion im Template aufrufen

Fügen Sie den folgenden Code an der gewünschten Stelle in Ihrer single.php Datei (oder einer anderen Template-Datei) ein:


  <?php get_related_posts_acf(get_the_ID()); ?>
  

Achten Sie darauf, den 'key' => 'genre' Eintrag in der $args Variable mit dem tatsächlichen Namen Ihres Custom Fields zu ersetzen.

Optimierung und Personalisierung

Die obigen Beispiele sind grundlegende Implementierungen. Sie können den Code weiter optimieren und personalisieren, um ihn an Ihre spezifischen Bedürfnisse anzupassen. Hier sind einige Ideen:

  • **Gewichtung von Kategorien und Tags:** Geben Sie Kategorien oder Tags mehr Gewichtung, um relevantere Ergebnisse zu erzielen.
  • **Cache:** Cachen Sie die Ergebnisse der Datenbankabfragen, um die Ladezeit zu verbessern.
  • **Design:** Passen Sie das Design der Liste der ähnlichen Beiträge an Ihr Theme an.

Fazit

Die Anzeige von ähnlichen Beiträgen ohne Plugin ist eine großartige Möglichkeit, die Benutzererfahrung auf Ihrer WordPress-Website zu verbessern und die Ladezeit zu optimieren. Indem Sie die hier beschriebenen Techniken anwenden, können Sie eine schlankere und schnellere Website erstellen, die Ihren Besuchern relevantere Inhalte bietet. Denken Sie daran, immer ein Child Theme zu verwenden, wenn Sie Änderungen an Ihren Theme-Dateien vornehmen. Experimentieren Sie mit verschiedenen Ansätzen, um die beste Lösung für Ihre Website zu finden.