web-dev-qa-db-fra.com

Comment limiter un site WordPress entier aux visiteurs, mais la page d'inscription et de connexion

Restreindre le site Web, mais se connecter et s'inscrire


Je souhaite que l'ensemble de mon site WordPress soit réservé aux visiteurs, mais je souhaite que la page d'inscription et de connexion soit accessible (non limitée) aux visiteurs.


Étant donné que mon site Web est réservé aux membres, je souhaite limiter son accès de manière à ce que les visiteurs ne puissent voir que 2 pages, la page de connexion et la page d'inscription.

J'ai essayé plusieurs plugins pour faire exactement cela, mais malheureusement pour moi, je n'ai pas été en mesure de trouver le bon. Certains plug-ins redirigent le site Web entier vers une page, tandis que d'autres nécessitent des paramètres de redirection personnalisés pour chaque page à ajouter séparément.

Ce que je veux: -

  1. Restreindre tout le site WordPress aux visiteurs par redirection.
  2. Ne pas restreindre 2 pages, page de connexion et page d'enregistrement.
  3. Rediriger les utilisateurs vers la page de connexion et/ou la page d’enregistrement.

Il existe une option dans ma page de connexion pour afficher la page d’enregistrement.
Je souhaite que ces deux pages soient accessibles au visiteur et que le reste du site Web soit inaccessible.

1
Omar Qazi

Le code ci-dessous fonctionnera avec les écrans de connexion/enregistrement par défaut de WordPress:

add_action( 'wp', 'member_only_site' );
function member_only_site( ) {
    if ( ! is_user_logged_in( ) ) {
          auth_redirect();
    }
}
3
Prasad Nevase

Une alternative possible:

global $pagenow;

$accessible_pages = array('wp-login.php', 'wp-login.php?action=register');

if ( !is_user_logged_in() && !in_array($pagenow, $accessible_pages) && !is_admin() ) {
    auth_redirect();
}

Vous pouvez insérer dans le tableau "pages_accessibles" les pages (séparées par des virgules) que vous souhaitez rendre accessibles au public, en évitant les redirections vers la page de connexion chaque fois qu'une page est chargée.

0
BlackOut

essayez ce code

function redi() {
global $pagenow;
if (!is_user_logged_in() && $pagenow != 'wp-login.php' && $pagenow !='wp-login.php?action=register') {
wp_redirect('wp-login.php?action=register');
}}  add_action('template_redirect', 'redi');
0
Kanon Chowdhury