Beitragsbild im WordPress RSS-Feed anzeigen
- Code für functions.php -In diesem Artikel zeige ich dir, wie du das Beitragsbild im RSS-Feed deiner WordPress-Seite anzeigen lassen kannst. Dafür musst du lediglich ein paar Zeilen Code in die functions.php hinzufügen.
Mit dem Ende von FeedBurner ging ein sehr beliebter Dienst von uns. Damals habe ich mir allerdings keine wirklichen Gedanken darüber gemacht, meine RSS-Abonnenten zu tracken oder mich um meinen RSS-Feed zu kümmern. Die WordPress-Standardeinstellung wurde beibehalten und gut ist.
Mittlerweile ist man da weiter. Treue Leser, die den Blog via RSS-Feed abonniert haben, sind nicht nur wiederkehrende Besucher, sondern auch potenzielle Kunden (besonders bei Unternehmensblogs). Deshalb macht es durchaus Sinn, die Anzahl an Abonnenten nicht nur im Auge zu behalten und stetig auszubauen, sondern den RSS-Feed auch optisch ein bisschen aufzuhübschen, z.B. durch Bilder.
Für das Tracking setze ich mittlerweile auf FeedPress – nebenbei kann ich es jedem nur empfehlen – in Verbindung mit dem dazugehörigen FeedPress-Plugin. Super leichte Einrichtung und eine simple Benutzeroberfläche – minimalistisch aber wirkungsvoll.
Ein Problem gab es allerdings bei meinem Blog: die Beitragsbilder wurden im Feed einfach nicht angezeigt. Da ich bei vielen Blogeinträgen nur das Beitragsbild habe und sonst kein anderes, war es blanker Text den sich wahrscheinlich niemand wirklich gerne durchlesen möchte. Das Auge liest eben mit.
Woran es lag, weiß ich selbst nicht, könnte mir aber durchaus vorstellen, dass es mit den eigens erstellten Post-Formaten zusammenhängt.
Allerdings müssen wir dem Problem auch nicht zwingend auf den Grund gehen, da wir mit einem kleinen Codeschnipsel in der functions.php
alle Beitragsbilder im RSS-Feed automatisch ausgeben lassen können:
//Funktion um Beitragsbilder im RSS-Feed anzuzeigen function featured_image_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', 'featured_image_in_rss'); //Filter für RSS-Content add_filter('the_content_feed', 'featured_image_in_rss');
Das wäre es auch schon. Ihr habt jetzt im RSS-Feed über euren Text das Beitragsbild (Größe: full) mit 10px Abstand nach unten. Ihr könnt natürlich die Größe des auszugebenden Bildes ändern und z.B. eine benutzerdefinierte Größe ausgeben lassen. Dazu muss man lediglich Zeile 8 leicht abändern und statt ‚full‘ eben den Namen seiner gewünschten Bildgröße angeben.
Hier ein Beispiel mit einem kleinen Thumbnail:
$content = get_the_post_thumbnail($post->ID, 'thumb', array('style' => 'margin-bottom:10px;')) . $content;
Ihr könnt das Beitragsbild auch erst nach dem Text ausgeben lassen. Dazu erneut Zeile 8 leicht anpassen:
$content = $content. get_the_post_thumbnail($post->ID, 'full', array('style' => 'margin-bottom:10px;'));
Und wenn ihr euren RSS-Feed richtig aufhübschen wollt, könnt ihr das Bild selbstverständlich auch zusätzlich mit CSS-Eigenschaften versehen und es somit z.B. nach links oder rechts ausrichten oder ihm einen Rahmen mitgeben.
Im nachfolgenden Beispiel habe ich das Bild von einem div-Container umschlossen, den ich linksbündig ausgerichtet habe:
//Funktion um Beitragsbilder im RSS-Feed anzuzeigen function featured_image_in_rss($content) { global $post; // Überprüfen, ob Artikel ein Beitragsbild hat if (has_post_thumbnail($post->ID)) { $content = '<div style="float: left;">' . get_the_post_thumbnail($post->ID, 'full') . '</div>' . $content; } return $content; } //Filter für RSS-Auszug add_filter('the_excerpt_rss', 'featured_image_in_rss'); //Filter für RSS-Content add_filter('the_content_feed', 'featured_image_in_rss');
Ich hoffe ihr könnt mit diesem kleinen Code etwas anfangen und eventuell ja sogar euren RSS-Feed schöner gestalten. Falls ihr andere Möglichkeiten kennt, auf das Beitragsbild im RSS-Feed Einfluss zu nehmen, hinterlasst doch einen Kommentar!
Inspiration für diesen Beitrag: Virendra’s Techtalk
Herzlichen Dank, genau so was hab ich gesucht. Vielen Dank, das rettet meinen Newsletter 🙂
Danke für dieses anschauliche Tutorial 🙂
Nee. nee. Den Programmcode wollte ich eigentlich unangetastet lassen. Schade.
Du kannst den Code in die functions.php deines Child-Themes packen. Dadurch bleibt gewährleistet, dass du dein Haupttheme weiterhin aktualisieren kannst, ohne dass du diese Funktionalität nach einem Update erneut hinzufügen musst.
Falls du kein Child-Theme eingerichtet hast, oder dir das trotzdem nicht zusagt, könntest du auch auf ein Plugin setzen wie z.B. „Featured Image in RSS Feed“ (https://wordpress.org/plugins/featured-image-in-rss-feed/).
Danke für den Tipp – klappt wunderbar. Ich hatte erst mal mit den Bildgrößen zu „kämpfen“, aber ist im Grunde ganz einfach, wenn man mal das f… manual liest 😉 :
//Default WordPress
the_post_thumbnail( ‚thumbnail‘ ); // Thumbnail (150 x 150 hard cropped)
the_post_thumbnail( ‚medium‘ ); // Medium resolution (300 x 300 max height 300px)
the_post_thumbnail( ‚medium_large‘ ); // Medium Large (added in WP 4.4) resolution (768 x 0 infinite height)
the_post_thumbnail( ‚large‘ ); // Large resolution (1024 x 1024 max height 1024px)
the_post_thumbnail( ‚full‘ ); // Full resolution (original size uploaded)
Jetzt muss ich mich nur noch mit den Thema „Child Theme“ auseinandersetzen, damit die Ergänzungen update-resistent werden. (Das genannte Plugin Featured Image in RSS Feed, was zuletzt vor 7 Monaten aktualisiert wurde, funktioniert bei mir nicht und ich befürchte, die Fehlersuche dauert länger, als fix das Child Theme zu erstellen)
Servus Denis!
Vielen Dank für den Artikel – war gerade sehr hilfreich für mich!
Eventuell wäre es gut, nicht ‚full‘ als Beispiel zu nehmen, weil das potentiell Postfächer zumüllen könnte 😉 .
Have fun
Horst
Vielen lieben Dank!
Oben genanntes Plugin hatte bei mir vor knapp 2 Monaten zum Stillstand von meinem RSS Feed geführt. ;-(
Deswegen hilft mir der Code super. Ich gebe die large Bider weiter, was bei mir ganz gut funktioniert. Leider sind die Bilder dann nicht Retina tauglich wenn sie über z.B. Mailchimp weiter geleitet werden. Aber ja – irgendwas ist da natürlich immer.
Was mich noch interessieren würde wäre, wie man z.B. nach dem Bild eine Leerzeile einfügen kann?
LG Martin
Hi Martin,
welches Plugin meinst du genau? „Feedpress“ oder „Featured Image in RSS Feed“? Ersteres hatte ich sehr lange selbst im Einsatz ohne Probleme und letzteres nur kurz ausprobiert um es @Farbenfreundin empfehlen zu können.
Willst du eine Leerzeile darunter einfügen oder benötigst du lediglich mehr Abstand nach unten? Für mehr Abstand musst du einfach nur die Anweisung „margin-bottom“ erhöhen. Also statt meinen 10px einfach 20px oder mehr eintragen.
Für eine Leerzeile könntest du mal folgenden Code statt der Zeile 8 probieren:
Das
ist ein einfacher Zeilenumbruch. Solltest du mehr Zeilenumbrüche benötigen, einfach entsprechend oft wiederholen. Ist aber nicht die eleganteste Lösung und ich würde definitiv mit den Abständen über CSS arbeiten (sofern diese vom entsprechenden Client korrekt interpretiert werden).
Bin nach langem suchen auf deine Seite gestoßen. Der Beitrag und der Code haben mir sehr geholfen. Allerding benötige ich noch einen Tip. Ich habe für die Feed-Integration von https://themeisle.com/wordpress-plugins/ das Plugin „FEEDZY RSS Feeds“ das zusammen mit der „Feedzy RSS Feeds Lite“ läuft. Hier kann ich nicht nur nur den normalen Blog-Feed integrieren, sondern auch Feed’s aus einem Shop. Dieses habe ich nun auf meiner zweiten Seite getan. Siehe dazu: https://windeltaschen.maschol.de/wickeltaschen-naehen/wickelunterlage-unterwegs/
Mit dem Plugin von themeisle besteht allerdings auch die Möglichkeit den Preis der einzelnen Produkte zu integrieren. Allerdings klappt es derzeit nicht, genauso wie vorher mit den Bildern.
Nun meine Frage: besteht auch hier die Möglichkeit durch einen Code in der funktions.php den Preis zu integrieren? Genauso wie auf :
https://demo.themeisle.com/feedzy-rss-feeds/shop-feed/
Ein toller Tipp, funktioniert wirklich ausgezeichnet.
Jetzt wäre es natürlich noch prima, wenn man den Feed in eine andere WP-Site einbinden könnte und dort würden dann die Bilder gezeigt. Mit dem RSS-Widget von WP klappt das leider nicht; es erscheint nur der Text. Oder mache ich da etwas falsch?
Hast Du eine Empfehlung für mich, wie ich das RSS-Widget von WordPress dazu bringen kann, die Bilder auch anzeigen (ich möchte den RSS-Feeds eines Blogs in einem anderen anzeigen)? Ideal wäre das ganze ohne Plugin lösen zu können.
Carsten
Besteht auch die Möglichkeit, um das Bild nochmal den Link zu Beitrag zu setzen?
Oder ist das nicht erlaubt/möglich?