Gli utenti vengono reindirizzati alla homepage invece che a wp-admin
Dopo aver migrato il mio sito WordPress, gli utenti che non sono Amministratori vengono reindirizzati alla homepage del sito dopo il login. Sul vecchio sito venivano reindirizzati su wp-admin. L'Amministratore viene correttamente reindirizzato a wp-admin.
Voglio che gli utenti vengano reindirizzati a wp-admin
dopo il login.
Ho modificato siteurl dal database (wp_options
), e ho anche aggiunto questo filtro nel mio functions.php
:
function my_login_redirect( $redirect_to, $request, $user ) {
// Reindirizza all'area amministrativa
return admin_url();
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
Qualsiasi aiuto è gradito! Grazie e Buona Pasqua!

Evviva, ho capito! In realtà il mio tema aveva un reindirizzo come questo nel functions.php
:
// Blocca l'accesso a /wp-admin per gli utenti non amministratori.
function custom_blockusers_init() {
if ( is_user_logged_in() && is_admin() && !current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'custom_blockusers_init' ); // Aggancia a 'init'
Tutto quello che devi fare è aggiungere la tua capacità di ruolo personalizzata, ad esempio: !current_user_can( 'manage-reports' )
Questo mi ha aiutato molto.

@Hello Lili ha ragione. Ma dovremmo verificare anche DOING_AJAX!
// Blocca l'accesso a /wp-admin per gli utenti non amministratori.
function custom_blockusers_init() {
if ( is_user_logged_in() && is_admin() && !current_user_can( 'administrator' ) && (defined( 'DOING_AJAX' ) && !DOING_AJAX) ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'custom_blockusers_init' ); // Aggancia all'azione 'init'

Il codice seguente funziona come previsto. Questo codice impedisce agli utenti non amministratori di accedere a wp-admin o alla pagina del profilo.
add_action( 'admin_init', 'redirect_non_admin_users' );
/**
* Reindirizza gli utenti non amministratori alla home page
*
* Questa funzione è collegata all'hook di azione 'admin_init'.
*/
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( home_url() );
exit;
}
}

ULTIMA RISORSA CHE FUNZIONA Puoi temporaneamente disabilitare il reindirizzamento dal file wp-login.php e poi eliminare tutti i plugin installati o aggiornati di recente.
- Disabilita il reindirizzamento aprendo il file wp-login.php
2.Scorri verso il basso fino alla riga dove trovi il codice "do_action( "login_form_{$action}" );" Solitamente si trova intorno alla riga 461
Commenta quella riga di codice per disabilitare il reindirizzamento
Salva il file. Ora potrai accedere usando http://www.example.com/wp-login.php
Disabilita o elimina tutti i plugin installati di recente, specialmente quelli che gestiscono funzionalità di controllo degli accessi
Pulisci i cookie e la cache
