Remove a certain post type from appearing in all RSS feeds

I would like to remove all posts with a post type of nf_sub from showing up in any RSS feeds, including comment feeds, how can I do this?

Topic rss Wordpress

Category Web


Paste this in your functions.phpof the active Theme or leave it in a custom plugin. Replace your-cpt string.

/**
 * Filter the feed, exclude specific custom post type 
 *
 * @param WP_Query object $query
 * @return void 
 */ 
function wpse_191804_pre_get_posts( $query ) 
{
  // only for feeds
  if( !$query->is_feed || !$query->is_main_query() )
    return query;
  
  $exclude = 'your-cpt';
  $post_types = $query->get('post_type');
  
  if (($key = array_search($exclude, $post_types)) !== false)
    unset($post_types[$key]);
  
    $query->set( 'post_type', $post_types );
    
    return $query;
}
add_action( 'pre_get_posts', 'wpse_191804_pre_get_posts' );

Only actual posts appear by default in the RSS feeds. If you have other types of posts in them it is an indication that you have a plugin which is responsible for doing that and you will need to consult its author to learn how to disable the inclusion of the specific post type.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.