Redirection après connexion sur Wordpress

<!-Je crée un thème wordpress personnalisé basé sur un site existant.

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

Comment faire pour que l'utilisateur soit dirigé vers'news.php' après la connexion au lieu de '<!--1...?

--

EDIT: avoir un Plug-in fonctionnel pour cela mais le bounty est toujours disponible pour quiconque peut trouver un moyen manuel de le faire à travers des fonctions.php, car il serait plus sûr que d'utiliser un tiers plug-in.

43
demandé sur Philip Kirkbride 2011-11-15 00:12:40

12 réponses

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

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

add_filter('login_redirect', 'admin_default_page');
70
répondu Travis 2013-08-02 13:38:07

la réponse acceptée est très erronée. On ne devrait jamais modifier le noyau WordPress. Non seulement les modifications seront perdues lors d'une mise à jour donnée, mais certaines modifications que vous apporterez sur un coup de tête peuvent compromettre d'autres fonctionnalités ou même mettre en danger la sécurité de votre site.

Action Crochets & Filtres sont inclus dans le noyau pour permettre de modifier la fonctionnalité sans modifier le code.

un exemple d'utilisation du login_redirect filtre pour rediriger certains utilisateurs peuvent être trouvé ici et 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 );
23
répondu Dan 2013-03-25 20:52:27

Cela peut aider. la connexion de Peter redirige

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

définir un ensemble de règles de redirection pour les utilisateurs spécifiques, les utilisateurs avec des rôles spécifiques, les utilisateurs avec des capacités spécifiques, et une règle générale pour tous les autres utilisateurs. Aussi, définissez une URL de redirection pour post-enregistrement. Tout cela est géré dans les paramètres > redirections de connexion/déconnexion.

Vous pouvez utiliser la syntaxe [variable]username[/variable] dans vos URLs pour 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 votre propre URL personnalisée "variables"...

12
répondu Vasanthan.R.P 2016-09-22 10:14:41
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 ne souhaitez rediriger les 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
  }
}
7
répondu Leo Jiang 2011-11-21 04:40:37

Theme My Login le plugin peut vous aider - il vous permet de rediriger les utilisateurs de rôles spécifiques vers des pages spécifiques.

2
répondu gArn 2011-11-15 20:49:12

Si vous avez de php 5.3+, vous pouvez utiliser une fonction anonyme comme suit:

add_filter( 'login_redirect', function() { return site_url('news'); } );
2
répondu Farahmand 2015-08-24 20:44:30

accepté La réponse est clairement pas une bonne réponse! Il peut résoudre votre problème pendant un certain temps, mais que se passera-t-il la prochaine fois que vous mettez à jour votre installation wordpress? Vos fichiers de base peuvent être dépassés et vous perdrez toutes vos modifications.

comme d'autres l'ont déjà dit (réponses de Dan et Travis), la bonne réponse est d'utiliser le login_redirect filtre.

1
répondu Mike 2013-04-14 14:13:11

essayez cela, il travaille pour la redirection sur wordpress

add_filter('woocommerce_login_redirect', 'wc_login_redirect'); 

function wc_login_redirect( $redirect_to ) {

   $redirect_to = 'PUT HERE URL OF THE PAGE';
   return $redirect_to;

}
1
répondu Mohammad Altamash Ansari 2017-04-21 16:15:08
// Used theme's functions.php  
add_action('login_form', 'redirect_after_login'); 
function redirect_after_login() 
{     
global $redirect_to; 
if   (!isset($_GET['redirect_to'])) 
{ 
$redirect_to =   get_option('sample-page');
//  sample-page = your page name after site_url
} }
0
répondu Omprakash Patel 2013-08-17 12:35:44

pour rediriger globalement après une connexion réussie, trouver ce code dans wp-login.php, en vertu de l'article.

   <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />

et remplacez <?php echo esc_attr($redirect_to); ?> avec votre URL où vous voulez rediriger. L'URL doit commencer par http:// et se termine sur /autres sages de la page de redirection à l'emplacement par défaut.

faire la même chose que la redirection du formulaire après l'enregistrement avec dans le même fichier mais sous <form name="registerform"> section.

0
répondu SYED FARHAN KARIM 2017-06-12 09:11:54
// add the code to your theme function.php
//for logout redirection
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
//for login redirection
add_action('wp_login','auto_redirect_after_login');
function auto_redirect_after_login(){
wp_redirect( home_url() );
exit();
`enter code here`}
0
répondu Lokesh Metta 2018-02-22 15:53:23

Les fonctions.fichier php n'a rien à voir avec la connexion de redirection, ce que vous devriez considérer, c'est l'wp-login.php file, Vous pouvez en fait changer l'interface de connexion complète à partir de là, et forcer les utilisateurs à rediriger vers vos pages personnalisées au lieu du répertoire /wp-admin/.

ouvrir le fichier avec Bloc-Notes Si vous utilisez Windows ou un éditeur de texte, Prese Ctrl + F (sur la fenêtre) Trouver "wp-admin /" et le modifier dans le dossier que vous voulez qu'il rediriger après connexion, toujours sur le même fichier appuyez sur Ctrl + F, trouvez " admin_url "et changez le nom du fichier, le nom du fichier par défaut il y a" profile.php"...après juste sauver et donner un essai.

if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) )
        $redirect_to = admin_url('profile.php');
    wp_safe_redirect($redirect_to);
    exit();

Ou vous pouvez utiliser le bouton "inscription-connexion plugin" http://wordpress.org/extend/plugins/registration-login/, juste simple de modifier la redirection d'url et les liens à l'endroit où vous souhaitez la redirection après la connexion, et vous avez votre propre profil personnalisé.

-1
répondu Charming Prince 2011-11-23 06:31:09