WP – Ähnliche Beiträge im Feed

Als Mehrwert auf einer Website werden gerne passende Artikel zum aktuell angezeigten Artikel angeboten, das ist mit einem schönen Plugin für WordPress wunderbar zu realisieren - Related Post.

Nun werden Feeds immer populärer und auch der „Normalo-Leser“ liest über seine Abonnements neue Beiträge. Damit lesen immer mehr Besucher nur die aktuellen Beiträge und die alten geraten in Vergessenheit, obwohl sie doch gerade dazu passen sind. Nun habe ich einfach per besagtem Plugin den Feed ein wenig erweitert und damit kann man nun auch dem Feed-Abonnenten zusätzlichen Content geben.

Screenshot Feed

Und so geht's:

Dazu müssen wir ein wenig in den Core-Dateien von WP verändern, was zum Nachteil hat, dass beim Update die Dateien vielleicht überschrieben werden und damit muss man alles nochmal machen. Man kann auch alles in Plugins auslagern, so dass es weniger Probleme beim Update gibt - nur darum soll es hier nicht gehen. Ich zeige im folgenden nur die nötigen Code-Schnippsel um den Feed zu erweitern.

Im grunde muss man nur die Funktion des Plugins einbinden, ich mache das im folgenden noch mit einer Abfrage, falls das Plugin mal deaktivert ist und es dann nicht zu einem Fehler im Feed kommt. Auch die xHTML-Formatierung muss sich jeder selber überlegen, ist nur ein Beispiel.

<?php if (function_exists('related_posts')) : ?><br /><strong>Related Posts:</strong><?php related_posts(); ?><?php endif; ?>

Für RSS 2

So sieht nun der Abschnit item der wp-rss2.php aus. Es muss also immer der Tag description der entstehenden XML-Datei erweitert werden.


<item>
  <title><?php the_title_rss() ?></title>
  <link><?php permalink_single_rss() ?></link>
  <comments><?php comments_link(); ?></comments>
  <pubdate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubdate>
  <dc :creator><?php the_author() ?></dc>
  <?php the_category_rss() ?>

  <guid isPermaLink="false"><?php the_guid(); ?></guid>
<?php if (get_settings('rss_use_excerpt')) : ?>
  <description>< ![CDATA[<?php the_excerpt_rss() ?><?php if (function_exists('related_posts')) : ?><br /><strong>Related Posts:</strong><?php related_posts(); ?><?php endif; ?>]]></description>
<?php else : ?>
  <description>< ![CDATA[<?php the_excerpt_rss() ?><?php if (function_exists('related_posts')) : ?><br /><strong>Related Posts:</strong><?php related_posts(); ?><?php endif; ?>]]></description>
<?php if ( strlen( $post->post_content ) > 0 ) : ?>
  <content :encoded>< ![CDATA[<?php the_content('', 0, '') ?><?php if (function_exists('related_posts')) : ?><br /><strong>Related Posts:</strong><?php related_posts(); ?><?php endif; ?>]]></content>
<?php else : ?>
  <content :encoded>< ![CDATA[<?php the_excerpt_rss() ?><?php if (function_exists('related_posts')) : ?><br /><strong>Related Posts:</strong><?php related_posts(); ?><?php endif; ?>]]></content>
<?php endif; ?>
<?php endif; ?>
  <wfw :commentRss><?php echo comments_rss(); ?></wfw>
<?php rss_enclosure(); ?>
<?php do_action('rss2_item'); ?>
</item>

Weitere Links:

Auch Lars hat sich mit dem Thema beschäftigt, wie er per Kommentar mitteilt.

One Comment

  1. Hallo Frank,

    super Geschichte mit den Ähnlichen Artikeln im RSS-Feed.

    Damit kann man als Blog betreiber seinen "RSS-Feed" Lesern einen noch besseren Feed Präsentieren und somit die Leser auch auf ältere Themen die zum Aktuellen passen drauf hinweisen.

    Hab die Änderrung gleich mal an meinen WP vorgenommen und gleich Ausprobiert und es funktioniert tadelos.

    Mal wieder ein Klasse Tipp von dir 🙂

    Lg Fabian

Comments are closed.