Prevent Posts in a Category From Displaying in WordPress’ RSS Feed

By  on  

I recently posted a snippet which prevented posts in a given category from displaying in WordPress' main loop.  I even went on to create my first WordPress plugin to accomplish the task via the WordPress control panel.  The one task those snippets doesn't complete is preventing posts from going into RSS feeds.  Here's how you can prevent posts in a category from displaying in the RSS feed!

The PHP

The category check is done the same way the loop check was done:

function postsFilter($query) {
    // Prevent from RSS feed
    if($query->is_feed()) {
    	// No posts in category #11 may go into the feed
    	$query->set('cat', '-11');
    }
}
add_action('pre_get_posts', 'postsFilter');

A pre_get_posts filter is added to check for the is_feed() return value.  If the value is true, we add the condition to remove the category form the final query.  I have added this functionality to the WordPress plugin as well!

Recent Features

Incredible Demos

  • By
    From Webcam to Animated GIF: the Secret Behind chat.meatspac.es!

    My team mate Edna Piranha is not only an awesome hacker; she's also a fantastic philosopher! Communication and online interactions is a subject that has kept her mind busy for a long time, and it has also resulted in a bunch of interesting experimental projects...

  • By
    dwImageProtector Plugin for jQuery

    I've always been curious about the jQuery JavaScript library. jQuery has captured the hearts of web designers and developers everywhere and I've always wondered why. I've been told it's easy, which is probably why designers were so quick to adopt it NOT that designers...

Discussion

  1. Ron

    Where do we add this php? I am a newbie

  2. Brilliant, thank you!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!