Quantcast
Channel: How to use has_archive but disable feed per post type? - WordPress Development Stack Exchange
Viewing all articles
Browse latest Browse all 4

Answer by Tomas Buteler for How to use has_archive but disable feed per post type?

$
0
0

I ran into this issue today. I don't know if it's the best way, but here's how I solved it (with has_archive still set to true, of course):

// First we remove WP default feed actions// If we stop here, feeds would be disabled altogetherremove_action('do_feed_rdf', 'do_feed_rdf', 10, 1);remove_action('do_feed_rss', 'do_feed_rss', 10, 1);remove_action('do_feed_rss2', 'do_feed_rss2', 10, 1);remove_action('do_feed_atom', 'do_feed_atom', 10, 1);// Now we add our own actions, which point to our own feed functionadd_action('do_feed_rdf', 'my_do_feed', 10, 1);add_action('do_feed_rss', 'my_do_feed', 10, 1);add_action('do_feed_rss2', 'my_do_feed', 10, 1);add_action('do_feed_atom', 'my_do_feed', 10, 1);// Finally, we do the post type check, and generate feeds conditionallyfunction my_do_feed() {    global $wp_query;    $no_feed = array('cpt_1', 'cpt_2');    if(in_array($wp_query->query_vars['post_type'], $no_feed)) {        wp_die(__('This is not a valid feed address.', 'textdomain'));    }    else {        do_feed_rss2($wp_query->is_comment_feed);    }}

Please note that this will cause all feeds to generate as RSS 2.0, when they do generate, but you get general idea.


Viewing all articles
Browse latest Browse all 4

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>