Beitragsbilder im WordPress RSS-Feed einbinden

WordPress Logo

Als ich heute meinen RSS-Feed angeschaut habe ist mir aufgefallen, dass die Beitragsbilder in den Artikeln nicht im Feed angezeigt werden. Da ich einige Blogartikel nur mit einem Beitragsbild und keinen zusätzlichen Bildern versehe, tauchen diese Artikel im Feedreader nur als Text auf. Kein schönes Verhalten, denn das Auge liest schließlich mit.

Kurzerhand habe ich mich auf die Suche nach einer Lösung gemacht. Neben einigen Plugins bin ich auch auf einen kleinen Codeschnipsel gestoßen, der in die „functions.php“ des verwendeten Themes kopiert werden muss. Dadurch werden fortan alle Beitragsbilder automatisch im RSS-Feed ausgegeben.

//Beitragsbilder im RSS-Feed ausgeben
function post_thumbnail_in_rss($content)
{
    global $post;
    // Überprüfen, ob Artikel ein Beitragsbild hat
    if (has_post_thumbnail($post->ID))
    {
        $content = get_the_post_thumbnail($post->ID, 'full', array('style' => 'margin-bottom:10px;')) . $content;
    }
    return $content;
}
//Filter für RSS-Auszug
add_filter('the_excerpt_rss', 'post_thumbnail_in_rss');
//Filter für RSS-Content
add_filter('the_content_feed', 'post_thumbnail_in_rss');

Das wars auch schon. Der hier gezeigte Code fügt das Beitragsbild im RSS-Feed vor dem Artikeltext ein. Bei Bedarf kann Zeile 8 angepasst werden. Beispielsweise lässt sich das Beitragsbild in voller Größe („full„), in mittlerer Größe („medium„) oder nur als Thumbnail ausgeben („thumbnail„). Ebenso ist es möglich das Bild mit diversen CSS-Eigenschaften zu versehen oder es nach dem Artikeltext auszugeben.

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter, Facebook, Google+ und Google+ (privat) folgt.

15 Antworten

  1. Jörg sagt:

    Tobi … du hast mir gerade jede Menge weitere Sucherei erspart. Danke für den Super-Tipp mit deinem Codeschnipsel … Habe das gleich in meinen „Stundenzeiger“ eingebaut …

    Viele Grüße vom Bodensee
    Jörg

  2. Johannes sagt:

    Hi Tobi,

    danke für die Info. Trotzdem würde ich mich etwas besser dabei fühlen, wenn das ein Plugin macht. Dann müsste ich nicht selber im Code herumspielen und wüsste, dass bei einem WP-Update auch das Plugin weiterhin läuft und ich nicht irgendwelche Änderungen im Code verworfen werden.
    –> Hattest du denn auch ein Plugin gefunden, welches diese Funktion gut erledigt?

    Thx,
    Johannes

    • Tobi sagt:

      Nur das Plugin „Add featured image to RSS feed“, aber dieses wurde schon lange nicht mehr aktualisiert.

      Ich sehe das komplett anders wie du. Genau für solche kleine Änderungen ist die Datei „functions.php“ gedacht. Die Entwickler legen viel Wert darauf, dass bei Änderungen trotzdem eine Abwärtskompatibilität bestehen bleibt. Daher ist der Filter auch in zukünftigen Versionen ohne Probleme einsetzbar, was ich bei Plugins nicht behaupten kann. Außerdem schlucken Plugins mehr Performance.

    • Johannes sagt:

      Hm, gut, du hast mich überzeugt. Ich habe deinen Codeschnipsel erfolgreich bei mir eingebunden. 😉

    • Tobi sagt:

      Sieht gut aus 🙂

    • Johannes sagt:

      Ich hatte übrigens leider genau den Fall, dass mir nach dem letzten WP Update (inkl. Theme Update) der Codeschnipsel abhanden gekommen ist. Habe ich aber erst vor kurzem bemerkt, dass heißt, eine ganze Weile war kein Bild mit drin.
      Ich habe jetzt das Plugin „Featured Images in RSS w/ Size and Position“ installiert und gucke mal, wie es sich so verhält. Zunächst macht es schon mal genau das, was es soll. 😉

    • Tobi sagt:

      Vermutlich verwendest du kein Child-Theme und deswegen wurden deine Änderungen in der „functions.php“ beim Theme-Update überschrieben..

  3. Martin sagt:

    Danke für den Tipp. Wieder eine Baustelle weniger!

  4. Mirjam sagt:

    Ich finde es immer toll, wenn ein paar Zeilen Quellcode ein Plugin ersetzen 🙂 Habe deinen Beitrag gleich mal als Tipp bei mir in der Ideenlounge verlinkt.

    Viele Grüße
    Mirjam

  5. Birgit sagt:

    Sehr klasse, bin über Mirjams Ideenlounge.de hier gelandet. Das in den Kommentaren genannte Plugin hatte bei mir nicht mehr funktioniert, aber jetzt versuche ich mich mal an deinem Snippet.

    Übrigens @all: für solche Code-Snippets, die in die functions.php des Themes gehören, eignet sich hervorragend das Plugin https://wordpress.org/plugins/code-snippets/ – egal welches Theme man verwendet oder auch wenn man später mal wechseln will, die Snippets innerhalb des Plugins bleiben einem und lassen sich nach Belieben de- und wieder aktivieren.

  6. Patrick sagt:

    Funktioniert! Vielen Dank, das hat mir sehr geholfen. Besonders schön, dass wir uns nicht auf eine Plugin-Lösung verlassen müssen.

  7. zeropage.io sagt:

    Hi Tobi! Eigentlich hatte ich nach einem Plugin gesucht, aber jedes Plugin saugt Performance. Und da ich seit geraumer Zeit mit Child Themes arbeite, ist der von dir vorgestellte Direkteinbau in die functions.php perfekt für mich. Vielen Dank dafür! Hab’s gerade auch in Englisch auf der zeropage zusammengefasst (und natürlich zu deinem Beitrag als Quelle verlinkt). Beste Grüße, Axel

  1. 24. Juni 2015

    […] Ein Klick und ihr gelangt direkt zu ein paar Zeilen Quellcode für die functions.php. Einfach einf… […]

Schreibe einen Kommentar

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