I was trying to limit the access of feeds to the users who have user account on the website. i do not want unauthenticated users to get the feeds. My site will have multiple types of membership and each with access to different feeds they can choose from.

  • What is thought of doing is to disable all the default feeds, and then create custom feeds and put authentication checks. it that a good idea? Jul 7 '19 at 7:02

Assuming that:

Different types of memberships = different User Roles

You can simply apply some conditional logic to achieve this:

    function disable_rss_conditionally() {
    // First let's check if the user is logged in
    // you can use current_user_can() to pass to forbidden roles    

    if (! is_user_logged_in() || current_user_can( 'subscriber' ) ) {
// you can also use wp_die( __( 'Some message'));
    wp_redirect( home_url(), $status = 404 );

    add_action('do_feed', 'disable_rss_conditionally', 1);
    add_action('do_feed_rdf', 'disable_rss_conditionally', 1);
    add_action('do_feed_rss', 'disable_rss_conditionally', 1);
    add_action('do_feed_rss2', 'disable_rss_conditionally', 1);
    add_action('do_feed_atom', 'disable_rss_conditionally', 1);
    add_action('do_feed_rss2_comments', 'disable_rss_conditionally', 1);
    add_action('do_feed_atom_comments', 'disable_rss_conditionally', 1);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.