Hacer tu web privada solo para usuarios logueados

    Redirige al usuario a la página de login salvo que esté en la página de registro (o de login).

    function site_private(): void
    {
        if (is_user_logged_in()) {
            return;
        }
    
        if (in_array($GLOBALS['pagenow'], ['wp-login.php', 'wp-register.php'], true)) {
            return;
        }
    
        wp_redirect(wp_login_url());
        exit;
    }
    add_action('wp', 'site_private');

    Modificación para excluir también a la página de inicio.

    function site_private(): void
    {
        if (is_user_logged_in()) {
            return;
        }
    
        if (is_home()) {
            return;
        }
    
        if (in_array($GLOBALS['pagenow'], ['wp-login.php', 'wp-register.php'], true)) {
            return;
        }
    
        wp_redirect(wp_login_url());
        exit;
    }
    add_action('wp', 'site_private');