- Home
- Categorie
- Coding e Sistemistica
- CMS & Piattaforme Self-Hosted
- personalizzare reindirizzamento dopo il login di word press
- 
							
							
							
							
							
personalizzare reindirizzamento dopo il login di word pressciao a tutti. vorrei far in modo che dopo aver effettuato il login in word press, il reindirizzamento fosse fatto così: per tutti gli utenti: alla home; 
 per l'utente admin: alla bacheca.Ho modificato il codice nel file wp-admin.php in questo modo: case 'login' : 
 default:if ( isset( $_REQUEST['redirect_to'] ) ) 
 $redirect_to = $_REQUEST['redirect_to'];
 else
 if($user_identity != 'admin')
 $redirect_to = 'la mia home page';else 
 $redirect_to = admin_url();il problema è che mi reinderizza ogni utente alla 'mia home page'. Controllando ho visto che la stringa $user_identity risulta vuota. Ho provanto anche con $user, $login ma stesso risultato. Qualcuno sa aiutarmi? Davide 
 
- 
							
							
							
							
							
Ciao ferre e benvenuto sul forum GT! Non sono sicura di quale file hai provato a modificare, wp-admin.php? wp-login.php forse? Io ho visto nel file wp-login.php attorno alla riga 423 sembra esserci il codice che hai anche postato tu. Io proverei con qualcosa come if ($user->ID == 1) $redirect_to = 'la mia home page';assicurati che l'admin sia user id 1, io ho tirato ad indovinare ma non lo so per certo. 
 
- 
							
							
							
							
							
ciao, si la pagina è wp-login.php...ma purtroppo ancora non va. Ti chiedo una cosa (conosco asp e mi sto avvicinando piano piano a php): a cosa serve la freccia qui sotto? $user->ID 
 
- 
							
							
							
							
							
Ho provato così: if ($user->ID != 1 ) 
 { if(isset( $_REQUEST['redirect_to'] ))
 $redirect_to = $_REQUEST['redirect_to'];
 else
 $redirect_to ="index.php";
 }
 else
 $redirect_to = admin_url();ma non entra mai nell'ultimo else 
 
- 
							
							
							
							
							
Ciao! credo che il problema sia che $user->ID non va bene da usare perchè in quella posizione del codice non è settato visto che l'utente si deve ancora loggare. 
 Ho provato in questo modo e a me sembra funzionare.
 File wp-login.php riga 414 ~ 433
 [php]
 case 'login' :
 default:if($user_login != 'admin') $redirect_to ="index.php"; else $redirect_to = admin_url(); /* if ( isset( $_REQUEST['redirect_to'] ) ) $redirect_to = $_REQUEST['redirect_to']; else $redirect_to = admin_url(); */ if ( is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) ) $secure_cookie = false; else $secure_cookie = ''; $user = wp_signon('', $secure_cookie);//eccetera come codice originale 
 [/php]Ho usato $user_login perchè è quello che l'utente ha scritto nel login form ed è una variable già settata. 
 Ho provato alcune volte e a me sembra funzionare, solo basta refreshare bene la pagina di login prima di inviare il form quando si prova tra un utente e un altro. (magari se usi due browser diversi fai un buon test per certo).Ovviamente puoi fare delle regole per vari utenti tipo: $user_login != 'nomeutente'La freccia tipo $user->ID è usata per riferire ad un metodo o una proprietà di un oggetto. In questo caso $user è l'oggetto e ID è una prorietà. Solo che durante il login, l'oggetto user non è definito ancora [credo e mi pare ovvio]. Quando usi $user, ed è un oggetto, ti ritorna stringa vuota se cerchi di stamparlo per via del fatto che è un oggetto. A volte se vuoi debuggare puoi usare "print_r" (invece di echo $user; che non stamperebbe nulla) print_r($user);Questo ti stampa nella pagina tutte le proprietà esistenti per l'oggetto $user. 
 
- 
							
							
							
							
							
Ciao, purtroppo ancora nulla. Da quanto ne ho capito, qualsiasi sia il login che faccio, mi porta sempre alla index.php (ho provato refreshando la pagina..in un altro browser..ecc) 
 
- 
							
							
							
							
							
Ho notato che $user_login 
 è sempre vuota
 
- 
							
							
							
							
							
Ciao! Domani faccio qualche altra prova... probabile che mi sia confusa, ma in effetti a volte mi portava al pannello admin e a volte alla index... strano. 
 
- 
							
							
							
							
							@Jantima said: Ciao! Domani faccio qualche altra prova... probabile che mi sia confusa, ma in effetti a volte mi portava al pannello admin e a volte alla index... strano. 
 Non avete più provato a fare questo reindirizzamento?
 
- 
							
							
							
							
							
ciao maricalina, purtroppo non ho ancora risolto..e non è arrivato altro aiuto da nessuno..speriamo che qualcuno trovi il modo di farlo.. 
 
- 
							
							
							
							
							@ferre said: ciao maricalina, purtroppo non ho ancora risolto..e non è arrivato altro aiuto da nessuno..speriamo che qualcuno trovi il modo di farlo.. 
 Ok ferre, vedo di darmi da fare anche io.
 Ciao
 
- 
							
							
							
							
							Risolto. 
 Ho trovato un plugin che fà esattemente quello che hai chiesto, lo puoi scaricare qui http://www.theblog.ca/wplogin-redirect, già testato funziona benissimo con l'ultima versione.
 Ciao.