Redirection après connexion sur Wordpress
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.
12 réponses
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 );
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"...
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
}
}
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.
Si vous avez de php 5.3+, vous pouvez utiliser une fonction anonyme comme suit:
add_filter( 'login_redirect', function() { return site_url('news'); } );
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.
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;
}
// 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
} }
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.
// 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`}
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é.