Бывает нужно сделать так, чтобы доступ к сайту был ограничен и только по паролю.

В WP это делается очень просто:


<?php
/*
Plugin Name: Need Authentication
Plugin URI: http://casepress.org
Description: Restrict access for site without authentication.
Version: 1.0
*/

add_action('init','CheckAllow');
function CheckAllow() {

	$current_path = empty( $_SERVER["REQUEST_URI"] ) ? home_url() : $_SERVER["REQUEST_URI"];
	
	if (! is_user_logged_in() && ! is_login() ){
		wp_redirect( wp_login_url($current_path) );
		exit;
	}
}

function is_login() {
    return in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) );
}

Основа идеи взята тут http://bavotasan.com/2013/private-site-plugin-for-wordpress/

Тут даны ценные рекомендации по техническим проблемам https://plus.google.com/117171684526082793963/posts/TafC566oW2e

Далее добавлен легкий штрих в виде учета изначального направления пользователя, чтобы при переадресации на страницу входа, не потерять цель посещения 🙂

Оформил этот сниппет в виде плагина https://github.com/casepress-studio/NeedAuthentication