60 votes

Redirection après connexion sur WordPress

Je suis en train de créer un thème WordPress personnalisé à partir d'un site existant.

Je veux utiliser un tableau de bord alternatif que j'ai créé.

Comment puis-je faire en sorte que l'utilisateur soit dirigé vers ' news.php après la connexion au lieu de ' /wp-admin/ ' ?

--

EDIT : J'ai un plug-in fonctionnel pour cela, mais la prime est toujours disponible pour quiconque peut trouver un moyen manuel de le faire via functions.php, car ce serait plus sûr que d'utiliser un plug-in tiers.

0 votes

Où se trouve news.php - dans le front-end ou dans la zone d'administration (c'est-à-dire le tableau de bord, c'est-à-dire un enfant de /wp-admin/... ) ? Pouvez-vous fournir un chemin complet ? example.com/... et ensuite quoi ?

117voto

Travis Points 2502

Cela devrait résoudre votre problème. Adapté d'une réponse trouvée ici.

Ajoutez le bout de code suivant dans le fichier functions.php de votre thème :

function admin_default_page() {
  return '/new-dashboard-url';
}

add_filter('login_redirect', 'admin_default_page');

0 votes

Malheureusement, mon fichier functions.php ne contient rien de semblable à celui de la personne qui avait posté sur ce site.

9 votes

Cela fonctionne pour moi ! Le fichier functions.php n'a pas besoin de contenir quelque chose comme ça, il suffit d'ajouter ce code au fichier !

0 votes

Ceci a fonctionné, vous pouvez donc l'utiliser dans votre plugin ou utiliser le plugin custom functions et y coller ces lignes de codes. ( dans la page de configuration du plugin custom functions)

36voto

Dan Points 1056

La réponse acceptée est très mauvaise. Il ne faut jamais modifier le noyau de WordPress. Non seulement les modifications seront perdues lors d'une mise à jour, mais certains changements effectués sur un coup de tête peuvent compromettre d'autres fonctionnalités ou même mettre en danger la sécurité de votre site.

Crochets et filtres d'action sont inclus dans le noyau pour permettre de modifier la fonctionnalité sans modifier le code.

Un exemple d'utilisation du login_redirect un filtre pour rediriger certains utilisateurs peut être trouvé aquí et est un beaucoup solution plus robuste à votre problème.

Pour votre problème spécifique, vous voulez faire ceci :

function login_redirect( $redirect_to, $request, $user ){
    return home_url('news.php');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );

13voto

Vasanthan.R.P Points 727

Cela peut aider. Redirection de la connexion de Peter

Rediriger les utilisateurs vers différents endroits après s'être connectés et déconnectés.

Définissez un ensemble de règles de redirection pour des utilisateurs spécifiques, des utilisateurs avec des rôles spécifiques, des utilisateurs avec des capacités spécifiques, et une règle générale pour tous les autres utilisateurs. Définissez également une URL de redirection pour le post-enregistrement. Tout ceci est géré dans Paramètres > Redirections de connexion/déconnexion.

Vous pouvez utiliser la syntaxe [variable]username[/variable] dans vos URLs afin que le système construise une URL dynamique à chaque connexion, en remplaçant ce texte par le nom d'utilisateur de l'utilisateur. En plus du nom d'utilisateur, il y a "userslug", "homeurl", "siteurl", "postid-23", "http_referer" et vous pouvez également ajouter vos propres "variables" d'URL personnalisées...

6voto

Linksku Points 2461
add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}

Ou si vous voulez seulement rediriger d'autres utilisateurs :

add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()&&!current_user_can('level_10')){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}

0 votes

Serait-ce correct si je voulais rediriger uniquement les abonnés ? add_action('wp_head','redirect_admin') ; function redirect_admin(){ if(current_user_can('level_0')){ wp_redirect(WP_HOME.'/news.php') ; die ; } }. }

5voto

Hossein Points 41

Vous pouvez également utiliser le lien personnalisé comme :

https://example.com/wp-login.php?redirect_to=https://example.com/news.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X