Do you want to add custom post types to your main WordPress RSS feed?
By default, the WordPress RSS feed only shows your recent blog posts. However, if you are using custom post types for other content, then you may want to include them in your main RSS feed as well.
In this article, we’ll show you how to easily add custom post types to your main WordPress RSS feed.
Why Add Custom Post Types to Main RSS Feed in WordPress?
By default, WordPress comes with two commonly used content types called posts and pages. However, you can also create custom post types to add more content types if needed.
For instance, a movie review website may want to create a custom post type for movie reviews using custom taxonomies suitable for that particular content type.
Now, your custom post types can have their own RSS feed which users can access by adding /feed/
at the end of the custom post type archive URL.
https://example.com/custom-post-type/feed/
https://example.com/movies/feed/
However, the custom post-type feeds are not easily discoverable. If a user enters your website’s URL in their feed reader, then it will show the subscription option for your main WordPress RSS feed.
That being said, let’s see how to easily fix that by adding custom post type to your main WordPress RSS feed.
Adding All Custom Post Types to Your WordPress RSS Feed
This method allows you to add all publicly available post types to be included in your main WordPress RSS feed.
You’ll need to add code to your WordPress website. If you haven’t done this before then take a look at our guide on how to easily add custom code snippets in WordPress.
Simply copy and paste the following code to your theme’s functions.php file or a site-specific plugin.
function myfeed_request($qv) {
if (isset($qv['feed']))
$qv['post_type'] = get_post_types();
return $qv;
}
add_filter('request', 'myfeed_request');
This code simply modifies the default WordPress query to fetch RSS feeds by adding all publicly visible post types into the query.
This will allow you to add pages as well as all other custom post types into your main WordPress RSS feed.
Adding Specific Custom Post Types in Main WordPress RSS Feed
This method is more flexible and allows you to choose which post types you want to include into your main WordPress RSS feed.
Simply copy and paste the following code into your WordPress website.
function myfeed_request($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array('post', 'movies', 'books');
return $qv;
}
add_filter('request', 'myfeed_request');
You can now visit your WordPress RSS feed to see this code in action.
We hope this article helped you add custom post types to your main WordPress RSS feed. You may also want to see our tips to optimize WordPress RSS feeds or see these best WordPress RSS feed plugins for bloggers.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Aidan says
Hi,
This doesn’t appear to work with custom post types that are not using a custom taxonomy. We are using a CPT with the ‘category’ taxonomy. Is this why it isn’t working?
e.g. mysite.com/feed?post_type=news&category=economy
WPBeginner Support says
It should still work for those custom post types, you may want to ensure you’re adding the correct name for your custom post type
Admin
Amar says
It worked for me. Thanks!
WPBeginner Support says
Glad our article was helpful
Admin
Arijit Biswas says
Worked for me! Thank you.
Renier Delport says
Helpful as always!
ReZa says
Hi
thank you for your Teaching.
i use edd in my site, when i want to see edd feed, download category and download tag are not shown in a rss feed.
at all: in a custom post type, how can i add post type category , post type tag to a feed?
default WordPress feed for default post type, category and tag show nicely.
i’m waiting for your answare.
Samuel says
Feeds are automatically added in the section dedicated for the custom post type example.com/feed/?post_type=books . You can just add an RSS icon linking to the earlier link.
Gary says
The code wasn’t working for me until I created at least one ‘default post type’ post.
Trieu To says
I want to exclude post from post type in feed. How to?
Ruben says
I wanted to include ALL Custom Post Types so I used this first snippet.
This included submissions to my Jetpack contact form!
Unfortunately that took me a while to notice!
Using the 2nd snippet to define each post type in the array fixed the issue.
whoaloic says
Hello,
I meet an issue with a CPT.
I add a CPT ‘cpt1’ to my feed amont others CPT, but cpt1 does not show in the feed.
When I put cpt1 alone in the feed, it works.
any help would be greatly appreciated.
Regards.
whoaloic says
I desactivate then reactivate WPML and it works.
JMarqz says
I just want to ask you something, you could see your CPT in your-site.com/feed? I’m using CPT and WPML, but my CPT never shows in your-site.com/feed, just my normal posts.
I follow this comment:
And all the CPT I choose are showing in the Feed reader but never in your-site.com/feed. I desactivate and reactivate WPML still not showing in the URL. I appreciate a lot if you could tell me if your CPT are showing in the URL for the Feed (your-site.com/feed).
Chuck Whelon says
What if you don;t know the names of the custom post types you want to include in your feed (in example 2) – i.e. I have a webcomic,, & I know the custom post-type for that is “webcomic_post”, but I also want to include posts to my portfolio & woo commerce store products. When I use the first version of the code, these items all show up in the feed, pus some other stuff I want to exclude. The problem is that I don;t know the names of the custom post types being used, and I don’t know how to find them out? I did try ‘product’ and ‘portfolio’ but those didn’t work. I am a bit of a noob at WordPress, so apologies if this is a dumb question — Any help much appreciated!
Nathan says
When you’re in WordPress, hover over the “Portfolio” link, for example, in the left navigation. This should point you at a URL where you can see all of your Portfolio items. Go to that page and look in the address bar, you’ll see the name of the post type listed there.
Ziacinzia says
Hello, could you please advise where exactly should the code go? Thank you
Hasan Shahzad says
The code needs to be placed at the end of functions.php theme file.
Alex Leonard says
Thanks for this – set me in the right direction for a couple of things
Kasey says
Hi, thanks for this! where in the page does this code need to be added? At the top? Bottom? Thanks so much!
Moaz says
worked like a charm ! thnx
Neil Curtis says
Cheers, a quick and easy tip that worked straight away for me. I’ve basically got no ‘posts’ but two custom post types so I had nothing showing in my feed before I edited the functions.php.
cheers again, Neil
Mike says
THANK YOU!!!
Sussie T says
So nice! Thank you! That was just what I needed. And so simple.
Pranjal says
Excellent tip, works like charm!
Want to merge WooCommerce feed to main blog’s feed, thanks again!
Colin says
Boom. This just worked perfectly for me, thankyou thankyou thankyou
Juergen says
Thanks
just what I needed
Luke Rumley says
I realize this post is older, but it came in handy today, so thanks! One tip for those that use Jetpack and don’t want to embarrass their visitors, use the second method, not the first! The first method publishes the “feedbacks” CPT to the RSS feed, which are all of the contact form submissions from your site. Oops!
Ami says
+1 here, worked great, thank you!
MoiMM says
My last changes in my function.php file :
<code>
/*———————————————————————————–*//* Add Post format in RSS/*———————————————————————————–*/ function myfeed_request($qv) { if (isset($qv[‘feed’])) $qv[‘post_type’] = get_post_types(array( ‘public’ => true ) ); return $qv;}add_filter(‘request’, ‘myfeed_request’);
</code>
navjotjsingh says
You should use get_post_types( array( ‘public’ => true ) ) instead of get_post_types() because you may not want the post types which are set not to be a publicly querable to be included in the feed.
Luke Rumley says
Ah, that’s a great catch! See my mistake here: http://wordpress.org/support/topic/plugin-jetpack-by-wordpresscom-feedback-custom-post-type-is-created-after-activating-jetpack?replies=3#post-3799791
closemarketing says
Nice hack!
Zeeshan Hamid says
Thanks!
I’ve tried every permutation of this over last few weeks and nothing works. I use feedburner, could that be the problem?
Yotsugi says
Check this:
http://wordpress.org/support/topic/update-not-show-a-feed-after-publish-a-custom-post-type?replies=3
Anton says
this tutorial shows you a similar way to achieve this and where you dont have to specify each post type – http://www.ballyhooblog.com/add-custom-post-types-wordpress-main-feed/
m says
Could you add ‘page’ and so have pages in the feed as well?
Editorial Staff says
YES. Pages are it’s own custom post type – “page”. So add that along with your other custom post types.
Admin
Adam W. Warner says
I’ve just found this function and implemented this code (the first one for adding all custom post types) and it works great for adding my custom posts type to my main feed.
However, it has also added my pages to my feed. I thought this should only add posts, not pages?
How do I exclude pages?
ahmed sayed says
can you advice more or provided me code for pages
thank you
Chuck says
running that code in functions caused a white screen of death. Looking into why…