How can I restrict a specific logged user (current role is subscriber) via wp_get_current_user() to view only specific pages?


This code filter the content for custom post types "news", you say "specific pages" so this can be adjusted to your needs. Then it checks if the user is a subscriber, and shows the content if it is, else, it just says "Not allowed".

function filter_content($content) {

    global $post;
    if ( $post->post_type == 'news' ) { //Specify your pages here
        $currentuser = wp_get_current_user();
        if ( in_array( 'subscriber', (array) $currentuser->roles ) ) {
            return $content;
        } else {
            echo 'Not allowed';



add_filter('the_content', 'filter_content');`
| improve this answer | |

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.