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

  • By
    Responsive and Infinitely Scalable JS Animations

    Back in late 2012 it was not easy to find open source projects using requestAnimationFrame() - this is the hook that allows Javascript code to synchronize with a web browser's native paint loop. Animations using this method can run at 60 fps and deliver fantastic...

  • By
    CSS Gradients

    With CSS border-radius, I showed you how CSS can bridge the gap between design and development by adding rounded corners to elements.  CSS gradients are another step in that direction.  Now that CSS gradients are supported in Internet Explorer 8+, Firefox, Safari, and Chrome...

Incredible Demos

  • By
    :valid, :invalid, and :required CSS Pseudo Classes

    Let's be honest, form validation with JavaScript can be a real bitch.  On a real basic level, however, it's not that bad.  HTML5 has jumped in to some extent, providing a few attributes to allow us to mark fields as required or only valid if matching...

  • By
    Making the Firefox Logo from HTML

    When each new t-shirt means staving off laundry for yet another day, swag quickly becomes the most coveted perk at any tech company. Mozilla WebDev had pretty much everything going for it: brilliant people, interesting problems, awesome office. Everything except a t-shirt. That had to change. The basic...

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!