Skip to content

How To Force Users To Login Before Viewing Your WordPress

Do you want to restrict access on your WordPress website to registered users only? You can easily force users to login before viewing your WordPress website.

We can use the auth_redirect() function to check if a user is logged in. If it’s not, it redirects them to the login page. Upon logging in, they will be redirected back to the page where they originally landed.

To restrict access to your WordPress website, add the following code snippet to your WordPress website:

function v_getUrl() { $url = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https' : 'http'; $url .= '://' . $_SERVER['SERVER_NAME']; $url .= in_array( $_SERVER['SERVER_PORT'], array('80', '443') ) ? '' : ':' . $_SERVER['SERVER_PORT']; $url .= $_SERVER['REQUEST_URI']; return $url; } function v_forcelogin() { if( !is_user_logged_in() ) { $url = v_getUrl(); $whitelist = apply_filters('v_forcelogin_whitelist', array()); $redirect_url = apply_filters('v_forcelogin_redirect', $url); if( preg_replace('/\?.*/', '', $url) != preg_replace('/\?.*/', '', wp_login_url()) && !in_array($url, $whitelist) ) { wp_safe_redirect( wp_login_url( $redirect_url ), 302 ); exit(); } } } add_action('init', 'v_forcelogin');
Code language: PHP (php)

Alternatively, if you are not comfortable adding code snippets to your website, I recommend installing this plugin instead.