Gli utenti vengono reindirizzati alla homepage invece che a wp-admin

30 apr 2016, 21:27:26
Visualizzazioni: 44.8K
Voti: 3

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!

1
Commenti

Puoi anche utilizzare questo plugin. https://wordpress.org/plugins/role-based-redirect/

Yasar Yasar
25 lug 2018 07:46:34
Tutte le risposte alla domanda 4
0

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.

1 mag 2016 19:44:40
1

@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'
22 giu 2018 05:24:52
Commenti

Per tua informazione, c'è una parentesi di chiusura in più nella tua risposta (alla fine dell'istruzione if). Mi ha fatto perdere qualche minuto. Grazie comunque. Questo mi è stato utile (io voglio reindirizzare i non amministratori alla homepage)

MrVimes MrVimes
22 lug 2021 15:29:27
0

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;
    }
}
30 gen 2019 09:48:57
1
-2

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.

  1. 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

  1. Commenta quella riga di codice per disabilitare il reindirizzamento

  2. Salva il file. Ora potrai accedere usando http://www.example.com/wp-login.php

  3. Disabilita o elimina tutti i plugin installati di recente, specialmente quelli che gestiscono funzionalità di controllo degli accessi

  4. Pulisci i cookie e la cache

19 dic 2017 23:18:43
Commenti

È una pessima pratica modificare i file core di WordPress

Anton Lukin Anton Lukin
19 dic 2017 23:33:26