Občas se naskytne situace, kdy je potřeba zamknout celý web, např. mimo hlavní strany (a samozřejmě přihlášení do administrace). A než hledat složitě pluginy, které to umí (často v PRO verzi), stačí jednoduchý kód, který stránku zamkne, reps. vše přesměruje na hlavní stranu mimo definovaných výjimek:
- je potřeba jen změnit slug hlavní strany podle toho, jak se jmenuje na vašem webu
// zapínání / vypínání uzamčení
$lock_site = true; // změň na false = vše veřejné
if ($lock_site) {
add_action('template_redirect', function() {
// slug of home page, that'l be visible
$allowed_slug = 'home';
$current_url = $_SERVER['REQUEST_URI'];
// logged in? access everywhere
if (is_user_logged_in()) {
return;
}
// login is accessible
if (strpos($current_url, '/wp-login.php') === 0) {
return;
}
// wp-admin is accessible
if (strpos($current_url, '/wp-admin') === 0) {
return;
}
// another page accessible
if (strpos($current_url, '/prihlaseni') === 0) {
return;
}
// only home is accessible
if (is_page($allowed_slug)) {
return;
}
// everything else goes to home page
wp_redirect(home_url('/' . $allowed_slug . '/'));
exit;
});
}

