É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: -
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.
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();
}
}
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.
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');