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.
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.
Share Improve this question asked Jul 7, 2019 at 7:01 Syed AbdullahSyed Abdullah 11 bronze badge 1- 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? – Syed Abdullah Commented Jul 7, 2019 at 7:02
1 Answer
Reset to default 0Assuming 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);
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745339684a4623268.html
评论列表(0条)