Comment rediriger l'utilisateur s'il n'est pas connecté à WordPress » Redirection de page

Publié: 2022-01-02

Comment rediriger si vous n'êtes pas connecté à WordPress Dans le dernier article, j'ai montré comment vérifier si l'utilisateur est connecté à WordPress. Une raison courante pour laquelle vous souhaitez vérifier si l'utilisateur WordPress est connecté est d'afficher différentes pages en fonction du statut de connexion de l'utilisateur WordPress. Si vous souhaitez rediriger les utilisateurs s'ils ne sont pas connectés à WordPress, vous pouvez y parvenir en ajoutant un extrait de code dans votre fichier functions.php, comme vous le verrez dans ce rapide tutoriel.

Pourquoi rediriger les utilisateurs dans WordPress ?

La redirection des utilisateurs est une exigence importante pour la plupart des sites WordPress. À différents moments, vous souhaiterez peut-être rediriger les utilisateurs d'une page à une autre. Par exemple, vous pouvez rediriger les utilisateurs WooCommerce après le paiement, ou vous pouvez rediriger l'utilisateur après l'enregistrement ou la redirection de connexion au site Web.

Rediriger si vous n'êtes pas connecté à WordPress est l'une des redirections les plus courantes. Bien qu'il existe des plugins qui peuvent aider à gérer la redirection dans WordPress, mais ajouter un petit extrait qui résout ce problème est une meilleure solution que de s'appuyer sur un plugin tiers.

Dans ce tutoriel, je vais montrer comment ajouter un extrait dans votre thème ou plugin qui crée la redirection pour les utilisateurs qui ne sont pas connectés à une page de votre choix.

Étapes pour rediriger si vous n'êtes pas connecté à WordPress

Pour implémenter la redirection si vous n'êtes pas connecté à WordPress, vous devez suivre les étapes suivantes :

  1. Connectez-vous à votre site WordPress et accédez à l'éditeur de thème sous le menu d'apparence du menu principal du tableau de bord.
  2. Ouvrez le fichier functions.php du thème WordPress actif. Vous pouvez également utiliser CPanel ou FTP pour accéder au fichier functions.php du thème actif. Il est situé sur ce chemin - wp-root-installation/wp-content/themes/active-theme/fonctions.php
  3. Créez un hook d'action qui s'accroche au hook d'initialisation de l'administrateur - admin_init , par exemple add_action('init', 'redirect_if_not_logged_in') . Ce crochet a une fonction de rappel qui aura la logique de vérifier si l'utilisateur est connecté à WordPress et s'il n'est pas connecté, il est redirigé vers la page que nous souhaitons.
  4. Créez la fonction de rappel comme nous l'avons mentionné ci-dessus et ajoutez le code en conséquence.
  5. Enregistrez les modifications et accédez au frontend pour tester si les utilisateurs non connectés sont redirigés vers la page que vous avez ajoutée dans le code.

Laissez-nous vous montrer comment vous pouvez ajouter une redirection si l'utilisateur n'est pas connecté à WordPress. J'utiliserai le thème WordPress par défaut sur l'installation localhost, mais cela peut fonctionner pour tous les autres sites, quels que soient le thème et l'environnement d'hébergement.

Le code pour ajouter une redirection peut également prendre une autre condition comme dans la plupart des cas lorsque vous souhaitez restreindre le contenu des utilisateurs non connectés, vous devez vérifier deux conditions :

  • Si l'utilisateur est connecté
  • Si l'utilisateur se trouve sur la page où vous avez le contenu restreint

Lorsque ces conditions sont remplies, vous devez utiliser la fonction wp_redirect() pour rediriger l'utilisateur vers la page de votre choix.

Fonction WP : wp_redirect()

Il s'agit d'une fonction de redirection WordPress qui peut être utilisée dans les thèmes et les plugins pour rediriger les utilisateurs. L'expression générale de cette fonction est la suivante :

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Comme vous pouvez le voir, la fonction a trois paramètres qui sont les suivants :

Paramètre La description
$location Il s'agit de l'URL vers laquelle vous souhaitez rediriger l'utilisateur. Lorsque vous utilisez cette fonction lorsque l'utilisateur n'est pas connecté, vous devez fournir l'URL de la page, nous redirigerons l'utilisateur comme vous le verrez dans l'exemple de code
$status Il s'agit d'un paramètre facultatif et vous ne le verrez peut-être pas souvent utilisé, mais c'est le code d'état de la réponse HTTP à utiliser. '302' par défaut et vous pouvez utiliser 301 pour une redirection permanente. Soyez prudent lorsque vous utilisez ce paramètre avec l'option de redirection 301.
$x_redirect_by C'est simplement l'application qui applique la redirection et cela changera rarement la valeur par défaut qui est WordPress

Action de redirection de modèle si l'utilisateur n'est pas connecté

Pour rediriger l'utilisateur qui n'est pas connecté à WordPress, vous pouvez maintenant utiliser la fonction wp_redirect avec la vérification conditionnelle si l'utilisateur est connecté comme suit :

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in' );

function redirect_if_user_not_logged_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //exemple peut être is_page(23) où 23 est l'ID de la page

		wp_redirect( 'http://votre-page-de-redirection-ici '); 
 
     exit;// n'oubliez jamais cette sortie car il est très important que wp_redirect() ait la sortie / die
   
   }
   
}

Remplacez le slug de la vérification conditionnelle par votre page respective et remplacez également l'URL de redirection dans le code ci-dessus et ajoutez-le au functions.php pour rediriger les utilisateurs qui ne sont pas connectés à cette URL de page.

Admin Init Redirect Action si l'utilisateur n'est pas connecté

Alternativement, vous pouvez vous accrocher à admin_init au lieu de template_redirect pour rediriger l'utilisateur s'il n'est pas connecté à WordPress.

Le code doit être le même à l'exception de l'ajout du crochet d'action. Le code devrait être le suivant :

 add_action( 'admin_init', 'redirect_if_user_not_logged_in' );

function redirect_if_user_not_logged_in() {

if ( !is_user_logged_in() && is_page('slug') ) {

      wp_redirect( 'http://votre-page-de-redirection-ici '); 
   
   sortir;
   }
}

Lorsque nous ajoutons ce code au thème WordPress par défaut functions.php et ajoutons le slug pour la page dont nous voulons créer la redirection et l'URL pour la destination, cela fonctionne parfaitement comme vous pouvez le voir :

Comment rediriger si vous n'êtes pas connecté à WordPress

Dernières pensées

Lorsque vous souhaitez créer une redirection si l'utilisateur n'est pas connecté à WordPress, vous devez d'abord vérifier si l'utilisateur est connecté à l'aide du code que j'ai partagé dans ce message, puis utiliser la fonction wp_redirect() pour ajouter la nouvelle destination où les utilisateurs doivent être redirigé s'ils accèdent à une certaine page ou publication.

Ce code peut être ajouté au fichier functions.php de votre thème ou vous pouvez l'utiliser dans le cadre de votre plugin WordPress personnalisé. Il est important de toujours se rappeler que lorsque vous utilisez la fonction wp_redirect , vous ne devez JAMAIS oublier d' ajouter la sortie car cette fonction ne se termine pas automatiquement.

En tant que développeur de plugin WordPress, vous pouvez également envisager un autre plugin de redirection WordPress wp_safe_redirect() qui fournit un meilleur moyen de redirection car il vérifie si le paramètre $location host est autorisé.

Articles similaires