Wie du das Featured Image im WordPress RSS Feed anzeigst

Mรถchtest du mehr zum Thema WordPress erfahren?

Dieser Artikel zeigt dir, wie du das Beitragsbild im WordPress RSS-Feed ausgeben kannst. Die Macher von WordPress haben uns dafรผr ein sehr praktisches Werkzeug an die Hand gegeben. Nรคmlich die functions.php und die berรผchtigten Hooks.

Feeds gehรถren noch lange nicht der Vergangenheit an. Auch in Zeiten von Smartphones und Facebook werden die Blog-Feeds noch rege abonniert. Der Aufschrei, als Google den Reader beerdigt hat, verdeutlicht wunderschรถn, wie wichtig diese Technik auch heute noch ist. Auch ich verfolge Webseiten ausschlieรŸlich รผber RSS.

Leider ignoriert WordPress das Featured-Image beim Generieren des RSS-Feeds. Eine Option zum Einfรผgen werde wรผnschenswert.
Es ist aber einfach mรถglich, das Beitragsbild in den Feed zu zaubern.

Hier das Howto zum Einfรผgen des Bildes in den Feed.

Warum sollte ich Bilder im Feed anzeigen?

Es geht wie immer um Aufmerksamkeit. Gerade wenn sonst keine Bilder im Artikel vorhanden sind, oder nur ein Teil fรผr den Feed bereitgestellt wird, sorgt dein Blogpost nicht gerade fรผr viele Blicke, wenn alle anderen Posts mit bunten Bildern bestรผckt sind.

Deshalb mรถchten wir unser WordPress Beitragsbild im RSS Feed mit ausgeben. Natรผrlich ganz oben, wie auch im Theme.

Ein schรถnerer Feed bedeutet mehr Besucher!

Variante 1: Code in die functions.php einfรผgen

Ich bin ja kein Fan von รผberflรผssigen Plugins. Alles, was mit wenigen Zeilen in der functions.php gelรถst werden kann, ist auf jeden Fall schlanker wie ein zusรคtzliches WordPress-Plugin.

Deshalb fangen wir mit der Variante zum Einfรผgen des Featured Image im WordPress RSS Feed, in der functions.php an. Fรผr versierte WordPress User sicher kein Problem.

Hattest du noch nie mit der Datei namens functions.php zu tun, mache dir auf jeden Fall vorher ein WordPress Backup.

Deine functions.php finden
Deine functions.php finden

Du findest die Datei im Verzeichnis deines Themes. Dort wo auch die index.php deines Themes liegt.
Pfad: /wp-content/themes/DEINTHEME/functions.php

Die Datei function.php รถffnest du in deinem Editor und fรผgst folgenden Code ganz am Ende ein.

// Add featured image to RSS feed
add_filter('the_excerpt_rss', 'j0e_imagetoRSS');
add_filter('the_content_feed', 'j0e_imagetoRSS');

function j0e_imagetoRSS($content)
{
  if (has_post_thumbnail()) {
    $content = '
    <p>' . get_the_post_thumbnail($post->ID, 'full', array('style' => 'max-width: 100%; height: auto; margin-bottom: 10px;')) . '</p>
    ' . $content;
  }
  return $content;
}

Auf Wunsch: Die nรคchste Version des Codes fรผgt dem RSS-Feed auch noch die Tags des Beitrags hinzu:

// Add featured image to RSS feed
add_filter('the_excerpt_rss', 'j0e_imagetoRSS');
add_filter('the_content_feed', 'j0e_imagetoRSS');

function j0e_imagetoRSS($content)
{
  $label = 'Tags: ';

  if (has_post_thumbnail()) {
    $content = '
    <p>' . get_the_post_thumbnail($post->ID, 'full', array('style' => 'max-width: 100%; height: auto; margin-bottom: 10px;')) . '</p>
    ' . $content .
      '<p>' . $label . j0e_show_tags() . '</p>';
  }
  return $content;
}

// Creates the tags list
function j0e_show_tags()
{
  $post_tags = get_the_tags();
  $separator = ' | ';
  $output = '';
  if (!empty($post_tags)) {
    foreach ($post_tags as $tag) {
      $output .= '<a href="' . esc_attr(get_tag_link($tag->term_id)) . '">#' . $tag->name . '</a>' . $separator;
    }
  }
  return trim($output, $separator);
}

Alternativ kannst du aber auch direkt im WordPress Backend die Theme-Dateien bearbeiten. Ich persรถnlich nutzte diese Mรถglichkeit aber generell nicht.
Design –> Editor –> rechts auf Theme-Funktionen klicken.

Anpassungen

Je nachdem welche BildergrรถรŸen du in deinem Theme nutzt und wie der Post dann im Feedreader aussehen soll, kannst du die Ausgabe deines Featured Images im RSS-Feed noch anpassen.

Wie du oben sehen kannst, habe ich get_the_post_thumbnail( $post->ID, 'full' full eingesetzt. Damit gebe ich also die volle GrรถรŸe des Beitragsbildes an. So wie ich es hochgeladen habe.

Alternativ kannst du aber noch folgende Werte einfรผgen:

  • thumbnail
  • medium
  • large
  • full

Nach 'style' => ' hast du noch die Mรถglichkeit jeden erdenklichen CSS Code anzugeben. Hier kannst du das Bild also noch formatieren und positionieren.
In meinem Beispiel oben hab ich mit 'margin-bottom: 10px;' lediglich 10 px Platz unter dem Bild gelassen.
Mit 'float:left; margin:0 10px 10px 0;' kรถnntest du das Bild zum Beispiel links anheften und den Text rechts vorbeiflieรŸen lassen. Dann wรคre es aber besser thumbnail oder medium, fรผr die BildgrรถรŸe zu nutzen.

Variante 2: Ein Plugin nutzen

Falls du lieber nicht in php Dateien herumfummeln mรถchtest und lieber ein Plugin zum Einfรผgen des Beitragsbildes in den RSS-Feed nutzt, fรผhren natรผrlich wie immer 1000 Plugins nach Rom.

Alle aufgefรผhrten Plugins wurden in den vergangenen Monaten aktualisiert. Sortiert habe ich nach der Anzahl der aktiven Installationen. Dieser Wert lรคsst einen perfekten Rรผckschluss auf die Qualitรคt des Plugins zu.

Featured Images in RSS w/ Size and Position

Featured Images in RSS w/ Size and Position
Featured Images in RSS w/ Size and Position

Insgesamt macht dieses Plugin den besten Eindruck. Die Bewertungen sind alle sehr positiv und das Plugin wird auf mehr als 10000 Installationen genutzt.

In den Einstellungen kannst du die GrรถรŸe des Bildes wรคhlen und auch noch die Ausrichtung. Also die gleichen Optionen, die wir auch oben in dem Snippet gemacht haben.

ยป Download

Featured Image In RSS Feed

Featured Image In RSS Feed
Featured Image In RSS Feed

Das zweite Plugin erledigt die gleichen Aufgaben wie das erste. Bei den Einstellungen kannst du allerdings nur die BildgrรถรŸe verรคndern. Als Standard ist Thumbnail ausgewรคhlt.

ยป Download

Send Images to RSS

Send Images to RSS
Send Images to RSS

Etwas umfangreicher ist das Plugin Send Images to RSS. Da kannst du auch die Breite in px angeben.
AuรŸerdem kann fรผr E-Mails ein separater und optimierter Feed generiert werden. Das ist praktisch, wenn du deine neuen Artikel automatisch an deine E-Mail Abonnenten senden mรถchtest. Das geht einwandfrei mit Mailchimp.

ยป Download

RSS Image Feed

RSS Image Feed Plugin
RSS Image Feed Plugin

Zuletzt mรถchte ich noch das Plugin RSS Image Feed aufzeigen. Es geht einen etwas anderen Weg und nimmt das erste Bild aus dem Text und fรผgt es darรผber ein.
Das Plugin macht im Prinzip das Gleich wie die anderen Plugins, jedoch nimmt es das erste Bild im Post her und nicht das Beitragsbild.
Einstellungen oder Formatierungsmรถglichkeiten gibt es leider keine.

ยป Download

Problemlรถsungen

Es kann immer etwas schiefgehen. Oder oft vergisst man einfach die Funktionen eines anderen Plugins, die uns ins Handwerk pfuschen.

Leere WordPress Seite

Falls deine Seite nur mehr weiรŸ ist, nachdem du den Code in die functions.php eingefรผgt hast, stimmt damit etwas nicht. Mache die ร„nderungen noch mal rรผckgรคngig und achte darauf, ganz am Ende eine Leerzeile einzufรผgen und fรผge dann noch mal den Code ein. Eigene Anpassungen mach erst, wenn alles mit dem Code von oben funktioniert.

Bild ist nicht im RSS Feed sichtbar

Hier kommen meist Caching Plugins ins Spiel. Falls du WP Super Cache oder W3 Total Cache nutzt, leere auf jeden Fall den kompletten Cache, nachdem du die ร„nderungen vorgenommen hast. Diese Plugins halten nรคmlich auch deinen Feed gecached.

Fazit

Es kann sich lohnen, das Featured Image in deinen Feed einzufรผgen. Besonders wenn du nicht den kompletten Artikel, sondern nur einen Auszug ohne Bilder per RSS ausgibst.
Dieser Artikel hat dir gezeigt, wie es geht.

Updates

  • 23.11.2021: Den Code aktualisiert. Zusรคtzlich eine Version mit Tags am Ende des Beitrags.
  • 11.02.2016: Verbesserung des Codes fรผr die functions.php. Anpassung des CSS, damit das Bild auch voller GrรถรŸe angezeigt wird.

Offenlegung Werbelinks: Mit einem Stern (*) gekennzeichnete Links und Buttons sind sogenannte Affiliate-Links. BloggerPilot bekommt bei einem Kauf eine Provision, die sich jedoch nicht auf den Endpreis auswirkt. Es ist uns wichtig zu betonen, dass dies keinen Einfluss auf unsere Bewertung oder Meinung hat.

ร„hnliche Beitrรคge

Schreibe einen Kommentar

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

 

36 Kommentare

  1. Hallo,
    was ich auch versuche, der Text erscheint nicht rechts neben dem Bild. Er beginnt mit einer Zeile am unteren Rand des Bildes und wird dann unterhalb fortgesetzt. (Bei allen BildgrรถรŸen) Was mach ich falsch?

  2. Hallo Axel,
    wenn du das Bild links haben mรถchtest und der Text rechts laufen soll, musst du das mit „float“ machen.
    Also diesen Code in den CSS Teil nutzen:
    float:left; margin:0 10px 10px 0;

    Die Zeile wรผrde dann etwa so aussehen:
    ‚ . get_the_post_thumbnail( $post->ID, ‚full‘, array( ’style‘ => ‚float:left; margin:0 10px 10px 0;‘ ) ) . ‚

  3. Danke, aber so hab ich es ja gemacht. Steht ja oben im Text. Es scheint wohl am Firefox zu liegen, der es nicht richtig darstellt. Denn im Thunderbird sieht es richtig aus! … Ich werde wohl ganz auf Bilder verzichten.

    vg Axel

  4. Der Style Code wird bei dir nicht angefรผgt.

    Das erste Bild Tag schaut so aus:
    <img xmlns="https://www.w3.org/1999/xhtml“ src="https://lwrs-smue.de/wp-content/uploads/2018/01/Ankündigung-300×200.png“ class="attachment-medium size-medium wp-post-image" alt="" height="200" width="300″ />

    sollte aber so aussehen:
    <img xmlns="https://www.w3.org/1999/xhtml“ src="https://lwrs-smue.de/wp-content/uploads/2018/01/Ankündigung-300×200.png“ class="attachment-medium size-medium wp-post-image" alt="" style="float: left;margin: 0 10px 10px 0;" height="200" width="300″ />

    Sende mir mal den Code in deiner functions.php. Vielleicht sehe ich den Fehler.

  5. // Add featured image to RSS feed
    function j0e_imagetoRSS($content) {
    global $post;
    if ( has_post_thumbnail( $post->ID ) ){
    $content = ‚

    ‚ . get_the_post_thumbnail( $post->ID, ‚medium‘, array( ’style‘ =>’float:left; margin:0 10px 10px 0;‘ ) ) . ‚

    ‚ . $content;
    }
    return $content;
    }
    add_filter(‚the_excerpt_rss‘, ‚j0e_imagetoRSS‘);
    add_filter(‚the_content_feed‘, ‚j0e_imagetoRSS‘);

  6. Das Hochkomma wurde beim Kopieren durch ein Komma ersetzt. … ist also in der Orignialdatei „oben“

  7. Hast du was vergessen?

    Ich versuche das Kopieren nochmal:

    // Add featured image to RSS feed
    function j0e_imagetoRSS($content) {
    global $post;
    if ( has_post_thumbnail( $post->ID ) ){
    $content = ‚

    ‚ . get_the_post_thumbnail( $post->ID, ‚medium‘, array( ’style‘ =>’float:left; margin:0 10px 10px 0;‘ ) ) . ‚

    ‚ . $content;
    }
    return $content;
    }
    add_filter(‚the_excerpt_rss‘, ‚j0e_imagetoRSS‘);
    add_filter(‚the_content_feed‘, ‚j0e_imagetoRSS‘);

  8. Danke!
    … aber gleiches Ergebnis!

    Was bedeuten eigentlich die letzten beiden Zeilen? „โ€šj0e“ deutet ja auf deine Webseite hin.

    vg

  9. Super, nun passt es. Der Code wird nun angefรผgt und der Text verlรคuft neben dem Bild.

    Der Firefox entfernt in der Feed-Darstellung den CSS Code.
    Musst dir im Internet Explorer ansehen.

  10. Ja das „j0e_imagetoRSS“ ist lediglich der Name fรผr die Funktion. Ich setzte vor alle meine Funktionen „joe_“, damit es zu keinen Problemen mit anderen Funktionen kommt.

    Du kannst auch alle „j0e_imagetoRSS“ mit zb „lwrs_imagetoRSS“ ersetzen.

  11. Hallo Jochen,

    hast du eine Idee was ich in der functions.php anpassen muss, damit meine Bilder im Content in voller Auflรถsung statt in 150x150px angezeigt werden? Habe oft eine kleine Galerie in den Beitrรคgen. Da aber nur die kleine Vorschau im Feed landet, wird z.B. bei Google Play Kiosk das kleine Bild auf volle Breite gezogen und damit verpixelt. Wรผrde gerne alle Bilder in voller Auflรถsung einbinden.

    Danke
    Manuel

  12. Also wenn du von oben die Variante 1 in deine functions.php einfรผgst, wird das Beitragsbild in voller GrรถรŸe in deinen Feed eingefรผgt.
    Damit sollte dein Problem gelรถst sein.

  13. Vielen Dank, vermute auch, dass das bei einer WordPress-Installation funktioniert.
    Jdoch habe ich hier nur das Featured Image, die 6 Grafiken im ersten sind jedoch in kleiner Auflรถsung hinterlegt.

  14. Achso, die Bilder im Artikel…
    Dazu mรผsstest du die Bilder im Artikel auch ich der GrรถรŸe einbinden, wie du sie im Kiosk mรถchtest.

    Zwei Mรถglichkeiten:
    1. Momentan hast du die 6 Bilder als Galerie eingefรผgt. Beim Einfรผgen der Galerie kannst du die GrรถรŸe der Bilder wรคhlen. Aktuelle hast du Thumbnail ausgewรคhlt. Nimm einfach die nรคchste GrรถรŸe.

    2. Die Bilder direkt in voller GrรถรŸe einbinden, ohne Galerie.

  15. Wenn ich die nรคchst hรถhere GrรถรŸe (Mittel) nehme, dann definiert er auch wieder Mittel als volle GrรถรŸe. Variante 1 fรผr also nicht zum Ziel.

    Variante 2 nehme ich ungern, weil dann hab ich ja die volle GrรถรŸe auch in der normalen Webansicht. Auf diese GrรถรŸe ist das Theme vermutlich nicht ausgelegt und ich will ungern die volle GrรถรŸe รผber schmale Mobilfunkverbindungen jagen, ohne dass der Nutzer das angefordert hat.

  16. Nun schaut das aber gut aus!

    Die Bilder deiner Galerie werden nun als srcset dargestellt. D.h. es werden alle BildergrรถรŸen angeboten und der Browser oder Kiosk wรคhlt dann die passende Variante aus.

    ร–ffne mal deinen Feed und drรผcke STRG+F5, dann siehst du was ich meine.

    Also abwarten, bis der Kiosk den neuen Feed geholt hat, dann sollte es passen.

  17. Ah ?, ja klar.
    Ich hab nur auf die erste img-URL geschaut, aber die groรŸen Bilder sind ja weiter hinten verlinkt.

    Super, vielen Dank und ein schรถnes Wochenende

  18. Vielen Dank fรผr den Artikel. Hat mir sehr weiter geholfen.
    Lieber GruรŸ,
    Muriel

  19. Hallo,
    danke fรผr den nรผtzlichen Code!
    Was mรผsste ich denn noch hinzufรผgen, so dass das featured Image im RSS-Feed klickbar wird und auf den eigentlichen Artikel zurรผck verlinkt?
    Danke
    Tobias

  20. Hi Jochen,
    nachdem das mit den Bildern im RSS-Feed so super funktioniert: hast Du eine Idee, wie ich auรŸerdem die Tags (am besten mit vorangestelltem #) in den RSS-Feed einbinden kann?

    Beispiel: ich vergebe die Schlagworte SEO und Marketing – im Feed wรคre es dann super, wenn #SEO, #Marketing unter dem normalen Text erscheinen wรผrde.

    Vielleicht weiรŸt du ja, wie das geht :-)

    Liebe GrรผรŸe und schon mal Danke im voraus
    Heike

  21. Hallo Jochen!
    Spรคt aber doch fand ich den Schnippsel, danke dafรผr, das ersparte die Sucherei in der Code Referenz!
    Bisher wurde bei unseren Sites ja das Bild angezeigt, weil das Plugin Feedzy aktiv war. Inzwischen lรคuft ein anders und das gibt keine Bilder in den Feed mit.

    Bez. der Frage, wie man denn die Bilder mit dem Beitrag verlinken kรถnnte – ich habs so gemacht:

    https://gist.github.com/gmmedia/042edb9fc35237933954f3711d56e34f

    Hier kam also die Variable „$feedlink“ dazu, welche den Beitragslink abholt und ein a href rund ums Bild.
    Obacht: Ich verwende hier nur die WP Standard BildgrรถรŸe „thumbnail“ und habe es links ausgerichtet.

    Nochmals Danke fรผr das Script!

    1. Leider wurden Teile meines Codes verschluckt, den korrekten Code habe ich dir gemehlt – bitte korrigieren, denn so funzt das nicht!
      Gibts hier keine Mรถglichkeit, Code auch als solches zu formatieren?

  22. Hi,
    hab die zweite Version genommen.
    Tags werden angezeigt, jedoch keine Bilder!?
    Was habe ich da falsch gemacht?
    https://spirit-of-eywa.de/blog-spirit-of-eywa/
    Im Abschnitt zwei und 3 fehlen die Bilder.

    // Add featured image to RSS feed
    add_filter(‚the_excerpt_rss‘, ‚j0e_imagetoRSS‘);
    add_filter(‚the_content_feed‘, ‚j0e_imagetoRSS‘);

    function j0e_imagetoRSS($content)
    {
    $label = ‚Tags: ‚;

    if (has_post_thumbnail()) {
    $content = ‚
    ‚ . get_the_post_thumbnail($post->ID, ‚full‘, array(’style‘ => ‚max-width: 100%; height: auto; margin-bottom: 10px;‘)) . ‚
    ‚ . $content .
    “ . $label . j0e_show_tags() . “;
    }
    return $content;
    }

    // Creates the tags list
    function j0e_show_tags()
    {
    $post_tags = get_the_tags();
    $separator = ‚ | ‚;
    $output = “;
    if (!empty($post_tags)) {
    foreach ($post_tags as $tag) {
    $output .= ‚term_id)) . ‚“>#‘ . $tag->name . ‚‚ . $separator;
    }
    }
    return trim($output, $separator);
    }

    GruรŸ Chris