Home Menü

WordPress – Externe RSS Images anzeigen

Für die Anzeige von RSS Feeds gibt es für WordPress unzählige Plugins. Allerdings stoßen alle Plugins an Ihre Grenze, wenn das anzuzeigende Bild eines externen RSS Feeds nicht in einem Tag, sondern im Content des einzubindenden Feeds hinterlegt ist. Dieser Artikel zeigt einen Weg zur Selektion dieser Content-Bilder.

RSS-Plugins

Sobald die gewünschten Bilder im Content eines RSS Feeds hinterlegt sind, kann es bei vielen RSS Plugins zu unüberwindbaren Hürden kommen. Ein Beispiel dafür könnte wie folgt aussehen:

<content type="html">
 ...
 <img border="0" alt="Text" src="http://www.beispiel.de/bild.png" />
 ...
</content>

In dem gezeigten Beispiel kann zwar oft das Content-Tag von den Plugins ausgelesen werden, jedoch nicht die Bilder im Content des Content-Tags.

Das Auslesen des externen RSS Feed

Um nun die Bilder aus dem Content auszulesen, benötigen wir im ersten Schritt einen Zugriff auf die Daten des gewünschten RSS Feed. Dazu bedienen wir uns der WordPress-Funktion

fetch_feed()

welche wiederum auf die Funktionen von SimplePie zurückgreif. In der WordPress Dokumentation zur Funktion finden Sie auch einen Beispielcode zur Verwendung von fetch_feed(). Im folgenden werde ich diesen Beispielcode als Grundlage verwenden und um eigenen Code ergänzen.

Das Parsen der externen Bilder

Um die einzelnen Elemente eines RSS Feeds anzuzeigen, wird im obig erwähnten Beispiel folgender Code verwendet:

<?php foreach ( $rss_items as $item ) : ?>
 <li>
   <a href='<?php echo esc_url( $item->get_permalink() ); ?>'
      title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
   <?php echo esc_html( $item->get_title() ); ?></a>
 </li>

Um nun die Bilder anzuzeigen, welche im Content des RSS-Feeds versteckt sind, können wir die obige Schleife um folgenden Code erweitern:

  <?php
 //Dekodierung von entwerteten Sonderzeichen
 $content = html_entity_decode($item->get_content(), ENT_QUOTES, 'UTF-8');
 //Dies ist das Suchmuster, nach welchem wir im Content suchen
 $pattern = "/<img[^>]+>/i";
 //Starten des eigentlichen Suchvorgangs
 preg_match($pattern, $content, $matches);
 //Speichert das erste gefunden <img>-Tag in einer Variable
 $img_1 = $matches[0];
 //Ausgabe des Bildes
 echo $img_1;
?>

Mithilfe dieses Codes wird der komplette Inhalt des Content-Tags nach img-Tags durchsucht. Anschließend wird das erste gefundene Bild in einer Variablen gespeichert und ausgegeben.

Fazit

Die Anzeige von Bilder, welche im Content des eigentlichen RSS-Feeds hinterlegt sind, ist mithilfe der aufgezeigten Code-Zeilen überhaupt kein Problem. Allerdings müssen Sie den Code in vielen Fällen noch an Ihre speziellen Bedürfnisse anpassen. Dies könnte zum Beispiel der Fall sein, wenn Sie nicht immer das erste Bild anzeigen wollen sondern vielleicht das Letzte.

Getestet unter WordPress 3.5(.1)

Veröffentlicht von Josef Seidl

Josef Seidl studiert zurzeit an der TU München Wirtschaftsinformatik (M.Sc.), arbeitet nebenbei als Freelancer und ist Gründer von Blog IT-Solutions. Er ist begeistert von Technik, schätzt performante Webseiten und IT-Sicherheit. In seiner Freizeit unternimmt er gerne Wandertouren und lässt sich von fremden Orten inspirieren. Zu finden ist er auch bei XING und privat bei Twitter.

Anzeige