WordPress verfügt über einen Standard-RSS-Feed, der den Inhalt Ihrer Website automatisch weiterleitet und es den Abonnenten leicht macht, auf dem Laufenden zu bleiben.
Wenn Sie jedoch nur bestimmte Arten von Inhalten wie Blogbeiträge, Produktaktualisierungen oder Veranstaltungsankündigungen weitergeben möchten, können Sie individuelle RSS-Feeds einrichten. Auf diese Weise können Sie Ihrem Publikum maßgeschneiderte Inhalte bieten, die für seine Interessen relevant sind.
Dies verbessert das Engagement, da die Abonnenten Aktualisierungen erhalten, die für sie von größerer Bedeutung sind. Außerdem haben Sie so mehr Kontrolle darüber, wie und wo Ihre Inhalte geteilt werden.
In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach einen benutzerdefinierten RSS-Feed in WordPress erstellen können.
Warum einen benutzerdefinierten RSS-Feed in WordPress erstellen?
WordPress verfügt über einen integrierten RSS-Feed, dem Sie ganz einfach benutzerdefinierte Inhalte oder Miniaturansichten hinzufügen können.
Wenn Sie jedoch eine bestimmte Art von Inhalt oder einen benutzerdefinierten Beitragstyp auf Ihrer WordPress-Website haben, dann möchten Sie vielleicht einen benutzerdefinierten RSS-Feed dafür erstellen.
Wenn Sie Ihren Abonnenten zum Beispiel exklusive Inhalte von bestimmten Autoren liefern, können Sie einen individuellen RSS Feed erstellen, um Ihre Abonnenten über die Inhalte zu informieren. Dies kann Ihre Platzierung in den Suchmaschinen verbessern.
Individuelle Feeds bieten Ihnen darüber hinaus mehr Freiheit, indem sie den Namen des Autors, das Veröffentlichungsdatum oder andere relevante Informationen aktivieren, um Ihren Benutzern mehr Details zu bieten.
Sehen wir uns nun an, wie Sie Schritt für Schritt benutzerdefinierte RSS-Feeds in WordPress erstellen können.
Hinweis: Sie sollten ein vollständiges Backup Ihrer WordPress-Website erstellen, bevor Sie größere Änderungen an einer aktiven Website vornehmen.
Wie man einen benutzerdefinierten RSS-Feed in WordPress erstellt
Sie können ganz einfach einen benutzerdefinierten RSS-Feed in WordPress erstellen, indem Sie benutzerdefinierten Code in die Datei functions.php Ihres Themes einfügen.
Dieser Feed zeigt den Titel, den Link, das Veröffentlichungsdatum, den Autor und Auszüge aus den Beiträgen auf Ihrer WordPress-Website an.
Beachten Sie jedoch, dass der kleinste Fehler bei der Eingabe dieses Codes Ihre Website beschädigen und unzugänglich machen kann.
Aus diesem Grund empfehlen wir WPCode. Es ist das beste WordPress-Code-Snippets-Plugin auf dem Markt und macht es sicher und einfach, benutzerdefinierten Code zu Ihrer Website hinzuzufügen.
Zunächst müssen Sie das WPCode-Plugin installieren und aktivieren. Detaillierte Anweisungen finden Sie in unserem Leitfaden für Anfänger zur Installation eines WordPress-Plugins.
Hinweis: Sie können das kostenlose WPCode-Plugin für dieses Lernprogramm verwenden. Durch ein Upgrade auf den kostenpflichtigen Plan werden jedoch weitere Funktionen freigeschaltet, z. B. der Testmodus, die Cloud-Bibliothek, die bedingte Logik und mehr.
Besuchen Sie nach der Aktivierung die Seite Code Snippets “ + Snippet hinzufügen in der Seitenleiste der WordPress-Verwaltung. Klicken Sie hier auf den Button „Snippet verwenden“ unter der Option „Individuellen Code hinzufügen (neues Snippet)“,
Dies führt Sie zur Seite „Benutzerdefiniertes Snippet erstellen“, wo Sie zunächst einen Namen für das Code-Snippet eingeben können.
Wählen Sie dann die Option „PHP Snippet“ aus dem Dropdown-Menü „Code-Typ“ auf der rechten Seite.
Fügen Sie dann den folgenden benutzerdefinierten Code in das Feld „Codevorschau“ ein:
add_action('init', 'customRSS');
function customRSS(){
add_feed('Feed', 'customRSSFunc');
}function customRSSFunc(){
get_template_part('rss', 'feedname');
/**
* Template Name: Custom RSS Template - Feedname
*/
$postCount = 5; // The number of posts to show in the feed
$posts = query_posts('showposts=' . $postCount);
header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
<?php do_action('rss2_ns'); ?>>
<channel>
<title><?php bloginfo_rss('name'); ?> - Feed</title>
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<language><?php echo get_option('rss_language'); ?></language>
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
<?php do_action('rss2_head'); ?>
<?php while(have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<link><?php the_permalink_rss(); ?></link>
<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:creator>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
<?php rss_enclosure(); ?>
<?php do_action('rss2_item'); ?>
</item>
<?php endwhile; ?>
</channel>
</rss>
Sie können nun den Namen Ihres benutzerdefinierten RSS-Feeds in einen beliebigen Namen ändern, indem Sie den Text Feed
nach der Zeile add_feed
im Code ersetzen.
Sobald Sie diesen Feed erstellt haben, können Sie ihn unter der URL des RSS Feeds anzeigen. Sie sieht dann wie folgt aus: yourdomain.com/feed/feedname.
Blättern Sie dann nach unten zum Abschnitt „Einfügen“ und wählen Sie den Modus „Automatisch einfügen“.
Der benutzerdefinierte RSS-Feed wird bei Aktivierung des Codes automatisch erstellt.
Blättern Sie schließlich zurück nach oben und schalten Sie den Schalter „Inaktiv“ auf „Aktiv“ um.
Klicken Sie anschließend auf die Schaltfläche „Snippet speichern“, um Ihre Einstellungen zu speichern.
Wenn Sie das getan haben, besuchen Sie die Seite Einstellungen “ Permalinks im WordPress-Dashboard.
Klicken Sie hier einfach auf die Schaltfläche „Änderungen speichern“, um die Rewrite-Regeln zu löschen und neue Permalinks für Ihre Website zu erstellen.
Sie können nun Ihren benutzerdefinierten RSS-Feed anzeigen, indem Sie die URL yourdomain.com/feed/feedname aufrufen.
Hier sehen Sie ein Beispiel für einen benutzerdefinierten RSS-Feed auf unserer WordPress-Demo-Website:
Bonus: Fehlerbehebung bei Problemen mit benutzerdefinierten RSS-Feeds
Hier finden Sie eine Liste von Fehlern, die bei der Erstellung eines benutzerdefinierten RSS-Feeds auftreten können, und wie Sie diese beheben können.
Ich erhalte eine 404-Fehlermeldung, wenn ich versuche, meinen Feed anzuzeigen!
Wenn Sie die Fehlermeldung 404 erhalten, wenn Sie versuchen, Ihren benutzerdefinierten Feed anzuzeigen, überprüfen Sie, ob Sie den richtigen Feednamen in Ihrer URL verwenden.
Es muss der Name sein, den Sie in der Funktion add_feed
angegeben haben. Wenn Sie den richtigen Feednamen haben, sind Ihre Rewrite-Regeln möglicherweise nicht korrekt gespült worden. Sie können das leicht beheben, indem Sie Ihre Permalinks neu speichern.
Wenn Sie Ihre Permalinks neu gespeichert haben und das Problem weiterhin besteht, können Sie einen Rewrite-Flush erzwingen, indem Sie diesen Code in Ihrem WPCode-Snippet neben der Funktion add_ feed
hinzufügen:
global $wp_rewrite;
$wp_rewrite->flush_rules();
Mein Feed ist nicht validiert!
Das W3C bietet einen Feed-Validierungsdienst an, der es Ihnen ermöglicht, den resultierenden Feed zu validieren und spezifische Details darüber zu liefern, wo Ihr Feed nicht validiert wird.
Sie können dann den Codeschnipsel leicht bearbeiten, um diese Probleme zu beheben.
Icherhalte einen <language /> Validierungsfehler!
Dies ist häufig der Fall, wenn die RSS-Sprache in Ihrer WordPress-Installation nicht konfiguriert wurde.
Zu diesem Zweck können Sie den folgenden Code in WPCode einfügen, um die Sprachoption zu aktualisieren:
function rssLanguage(){
update_option('rss_language', 'en');
}
add_action('admin_init', 'rssLanguage');
Bearbeiten Sie dann das zweite Argument der Funktion update_option
, um die Sprache in die von Ihnen gewünschte zu ändern. Sehen Sie sich die vollständige Liste der RSS-Sprachcodes an.
Sobald Sie das Snippet speichern, wird der Fehler behoben, und Sie können Ihren benutzerdefinierten RSS-Feed anzeigen.
Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu erfahren, wie Sie einen individuellen RSS Feed in WordPress erstellen können. Vielleicht interessieren Sie sich auch für unsere Schritt-für-Schritt-Anleitung zur Erstellung separater RSS Feeds für jede Kategorie in Ihrem WordPress Blog und unsere Expertentipps zur Optimierung Ihrer WordPress RSS Feeds.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
Jonathan
Following this tutorial, for some reason changing the $postCount does not work.
Eg,
$postCount = 20; // The number of posts to show in the feed
Only by changing the default number inside of Wordpress Reading settings does it work. Very weird. How do we overwrite the wordpress settings, or stop the wordpress settings from overriding our code?
WPBeginner Support
Your specific theme may be overriding the number of posts to show, we would first recommend checking with the support for your specific theme and they should be able to assist.
Admin
Shahid
Hi.
How i can add custom post types and custom fields in feed?
WPBeginner Support
You would want to take a look at two of our other articles below for that information.
https://www.wpbeginner.com/wp-tutorials/how-to-add-custom-post-types-to-your-main-wordpress-rss-feed/
https://www.wpbeginner.com/wp-tutorials/wordpress-custom-fields-101-tips-tricks-and-hacks/
Admin
Dexter Nelson
Is there any way to make this permanent? I keep having to repeat this step every few weeks when the theme is updated.
WPBeginner Support
For that, you would want to create a child theme following our guide below:
https://www.wpbeginner.com/wp-themes/how-to-create-a-wordpress-child-theme-video/
Admin
Dexter Nelson
Thanks. But doesn’t that mean when the theme is updated I’ll have to update the child theme? If that’s the case and I have to put in the work either way, I might as well put in the work to create and maintain a plugin and help out others instead of just myself, right?
WPBeginner Support
Child themes should not be affected by updates to the parent theme but if you have the ability to create a plugin then you can certainly go down that path to help others as well.
Thommy Kusbin
is there any plugin to do this kind of custom rss feed XML? I want to use my own tag xml.
WPBeginner Support
We do not have a recommended plugin at this time, we will be sure to keep an eye out.
Admin
MOOSA
How can I use „wp_get_shortlink()“ Instead of „the_permalink_rss()“
John Snyder
I need to create an XML feed for a specific page on my Wordpress website. Here is the page will I have to edit my functions.php file or is there an easier way?
Alok Shrestha
Hello,
This article is very helpful but I got some issue.
I did exactly like in your code. But it gives me an error as
This page contains the following errors:
error on line 1 at column 7: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
Could you please help me out what could possibly go wrong here?
This is very important for me.
Thank you.
Nathan
I got the same error. Did you figure out the fix?
Rich
Use ob_clean(); after php tag
Guillermo
Hi, is it possible to change de order of the posts in my feeds without creating a new custom feed? I want to use the current feed files but just want to change the displayed order of theme. Using PHP queries as an example, changing order from DESC to RAND()
I will appreciate you help. Thanks.
Jeremy
Great post! I definitely fall under the rookie status. Many feed readers/aggregators don’t seems to like the /feed/ URL structure, even through the xml returned validates. Is there a way to append the url to end with rss.xml?
Dave
Did you get this to work with .xml at the end?
JDURAN
Sorry to say, however, implementing the codes for custom rss has effectively wiped out my entire blog. Having to do a restore and it is taking a long time to get my blog back up. Any advise?
Mark
You need to connect to your site via FTP or your hosting’s file browser in cPanel, and simply remove what you added. If you added the code as a custom plugin, then just rename the plugin folder. If you added the code in functions.php, edit the file and remove the code. Don’t forget to backup the file before editing. Hope this helps for the next time.
jim
Fantastic! This works as advertised!
DrLightman
Never mind, it does. I had a bug with YOAST SEO that with the /category/ prefix removal. I have warned them of it I hope they will fix it.
DrLightman
Hello, thank you for the article, but it seems this will only work for the main site feed, not for the specific catgories feeds:
mysite.com/category/mycat/feed/feedname/
Manuel
Doesn’t work anymore.
I got a 404 error, so I activated debug mode. Debug mode says „Notice: The Called Constructor Method For WP_Widget Is Deprecated Since Version 4.3.0! Use __construct()“
Manuel
Ok, I think the problem was elsewhere and this notice is from a different plugin.
git
unfortunately this is restricted in its usefulness. inserting screenshots and sample pages would be very helpful, particularly for amateurs/rookies like me.
Tiffany
Great article. Any way to add the featured image for the post to the feed?
WPBeginner Support
Please see our guide on how to add featured image to your WordPress RSS feed.
Admin
CT
Please see below screenshots – what determines the „…“ or „[…]“ or „Read More ->“ etc etc in feeds?
I’m using the default /feed in 2 different WP sites & these 2 screenshots obviously are showing something different at the end of their excerpts. Thanks!
CT
Apologizes but that code did not come through clear lol. Lets try that again. Go here to see the exact, raw code I’m looking to remove:
WPBeginner Support
This code is added by Yoast SEO plugin to RSS feeds. You can turn it off by visting SEO » Advanced page.
Admin
Stef
Hey, I want to exclude certain post_formats from my custom rss feed. Is that possible and if so, how?
Neha
Hello,
When I try to view the feed I got 404 Page not found error. I am trying to add code:
global $wp_rewrite;
$wp_rewrite->flush_rules();
then I also got same error. Could this be why?
Jordan
How do you add multiple feeds? Array is not working. Thanks.
Jon Harvey
How would you add multiple custom feeds? Couldn’t get an array to work.
Thanks
Jon Harvey
Got it to work neatly thanks to birgire at Stack exchange:
add_action( ‚init‘, ‚custom_feeds‘ );
function custom_feeds()
{
foreach( array( ‚feedname1‘, ‚feedname2‘ ) as $name )
{
add_feed( $name,
function() use ( $name )
{
get_template_part( ‚rss‘, $name );
}
);
}
}
Neal Pope
The „follow“ button shows up at the bottom right corner when viewing posts on a personal computer, but does not appear when viewing on a mobile devise (smartphone) (unless I’m just missing it.
Limbani
Thanks for sharing it’s work perfectly…
Jeff
Sorry, but everything about this is misleading. this is not „beginner“ work. and it is not worded for beginners. This is totally irresponsible and can cause major issues to people’s websites.
WPBeginner Support
We have updated the article to add a note about this.
Admin
Christine
I got this working (kind of). The feed page exists, but will not validate and says there is an error on line 1.
I copied the code exactly from this page and haven’t changed anything. What could be going wrong here?
Flávia
W3 will not validate mine as well and says there is an error on line 17.
And I am getting the 404 page!
What should I do?
Eugene Asiamah
Hello,
Please i need help in configuring my rss to show all my post content on not just an excerpt of it.
Thank you.
Georgi
Hello,
I need to show only date without time for pubDate. When I use
It’s doesn’t work for firefox,IE.
Can you help me?
Thank you in advance!
Jan-Philipp
Hi.
I would like to change the update pattern of the feed with
sy:updatePeriod
echo apply_filters( ‚rss_update_period‘, ‚weekly‘ );
/sy:updatePeriod
sy:updateFrequency
echo apply_filters( ‚rss_update_frequency‘, ‚1‘ );
/sy:updateFrequency>
sy:updateBase
2015-03-29T01:00:00+09:00
/sy:updateBase
But whatever I tried, it automatically adds a new post when I publish it and does not wait till Sunday ( as defined in the code above) to add it to the RSS.
Do you have any suggestions? Do I maybe need to find a solution within the WP Query?
Your help would be much appriciated.
Jan-Philipp
Hi.
I would like to change the update pattern of the feed with
2015-03-29T01:00:00+09:00
But whatever I tried, it automatically adds a new post when I publish it and does not wait till Sunday ( as defined in the code above) to add it to the RSS.
Do you have any suggestions? Do I maybe need to find a solution within the WP Query?
Your help would be much appriciated.
Issabellla
Hi.I try to do as your mention but I’ve seen my site cannot access to the feed page.This is My site I try to use /feed and a lot of word which is mention in wordpress.com or wordpress.org even in the google.Please help me.
WPBeginner Support
Your site’s feed looks fine to us.
Admin
xuamox
What determines that the feed will be displayed at feed/feedname? I have tried to follow the tutorial, but not luck at all. The feed is not publishing at feed/feedname.php
Wouter Bertels
Following these exact steps I got this error:
Fatal error: Cannot redeclare get_bloginfo_rss() (previously
declared in
/home/public_html/wp-includes/feed.php:25)
in /home/public_html/wp-content/themes/xxx/rss-name.php on line 39
George
Hi,
My feed is OK when this code is added:
global $wp_rewrite;
$wp_rewrite->flush_rules();
and returns a 404 when it is removed.
I only remove it as per your instructions, which is to remove it after reloading wordpress.
At this moment I am testing it on my local server. Could this be why?
ybmgryzzz
Hi there. Thanks for this post! Really appreciated. Worked well at first go!
I would also like some assistance as Brian below. For the full text in the RSS instead of the post excerpt.
Thanks in advance.
Brian
I am trying to add a second RSS feed that is full text (my first RSS feed is summary). If I wanted this custom RSS feed to be full text instead of summary excerpt, what would I change?
Thanks so much!
Steve Marks
Thanks for this. Just what I was looking for!
I had an issue when I used add_feed(). I could view the RSS feed in the browser absolutely fine, but it would return a 404 when I entered the URL into a third party application (ie. MailChimp, W3C feed validator etc). I had tried flushing the permalinks etc.
The only way I could get round the issue was to create a new blank page and select the template as the one you’ve outlined in this article.
Not sure why it didn’t work, but hopefully this offers a viable solution for others in this situation.
Thanks again!
Josh McClanahan
Your article is right on the path of what I was looking for. One question I have (as a noob to RSS), how can I add a link to an RSS feed?
The site that I need this for is a church and would like to have a custom feed that would make it easier for our members to be alerted to newly posted sermon posts (that have mp3 download links).
Currently, the feed shows the text for the links that I have created on the posts for the sermons. But it only acts as text. Any help would be appreciated.
Josh McClanahan
Just noticed that I didn’t ask my question correctly.
What I was trying to ask was, how can I display a link in the RSS Feed? The links that are in the content of my posts are broken in the feed.
Thanks for your help and this article.
Josh McClanahan
Still curious, if anyone knows why my links would be broken and only show as plain text in a feed?
To see what I mean checkout: http://amfmchurch.com/feed
You will see „Download“ in plain text. I would like to make it so that people can click the anchor link and download the mp3. This works find on the actual site.
Thanks for any help.
Neil
Hi, I have the default rss feed.. but I would like to be able to either reduce the size of the images from what is displayed in the post…. (to a maximujm width of 265px) OR to just use the post thumbnail in the rss.
Is either of the above possible?
The reason I am looking to do this is that my RSS feeds an APP and the APP will only display images up to 265px in width (before horizontal scrolling) and 265px is very limiting for online/pc blog posts…
Cathy Finn-Derecki
Thank you for this! I am making a custom RSS location part of a plugin I’m developing. As a result, I have included the text for the custom RSS in the function, not in a theme template. It’s working. However, it does not seem to work when I want to restrict the feed to a category. It gives all posts regardless. Any thoughts?
WPBeginner Support
try changing
1-click Use in WordPress
To:
1-click Use in WordPress
Replace category_name with your category name.
Admin
Francisco Espinoza
Hi Guys. How can I use this to exclude three categories from my new custom feed? What do you suggest?
Alexis
Hello,
Thank you, these explanations are really useful. I just used it to customize my feed so I could put an image in mailchimp’s „RSS to email“ feature.
Thank you very much !
the Off
Hello,
Till yesterday afternoon, my Wordpress (version 3.6.1) blog http://theoff.info/wordpress/ had no problem. And I successfully added new plugins.
In the night, problems started: (1) I could not login. (2) the RSS feed http://theoff.info/wordpress/?feed=rss2 got corrupted. The feed failed validation.
I searched the Web and Wordpress Support Forum for solutions. I tried the following:
(i) successfully reset the password
(ii) deleted new plugins from ftp
(iii) renamed Theme folder by adding „-old“ and plugin folder by adding „-hold“ from ftp
Then I could login and up grade to 3.7.1 version and make changes to the blog.
However, login is still an issue. Every time I am following method mentioned in step (iii) to login.
RSS still does not validate.
Could you help in resolving both login and RSS feed problems?
Note: My webhost does not offer technical help. I am not an IT professional i.e. I have very little technical knowledge.
Thanks
WPBeginner Support
It is difficult to figure out. Here is one thing you can try.
1. Using FTP download your plugins to your computer for backup and then delete your plugins directory.
2. Create a new plugins directory.
3. Install and all your plugins one by one by downloading fresh copy of the plugin from the source. After you activate each plugin log out and and log back in to see if the problem occurs again. You will probably find a plugin that may be causing the problem or you wont. This could mean that a plugin file on your site may have been compromised.
If this process does not help you, repeat this process process with your themes as well. If you have made a lot of changes to your existing themes then you might want to back it up on your computer by downloading theme folder through FTP. Then delete themes folder from your webserver and create a new themes directory in wp-content folder on your server. From WordPress admin area download and install a fresh copy of default twenty thirteen theme.
Let us know what happens when you do all that. Make Sure to Backup your Site first.
Admin
Bertrand
Hello,
When I try to open the new feed, I get an error message:
Fatal error: Call to undefined function query_posts() in /xxxx/wp-content/themes/xxx/rss-feedname.php on line 6
I tried on localhost and web hosting, it is the same…
How can I fix it?
Thanks
Bertrand
My fault: http://wordpress.org/support/topic/error-message-call-to-undefined-function-query_posts?replies=5
ADv
Does the php template need close tag ?> in the end?
ADv
No, it doesn’t. Silly me = )