Reindirizzare l'Utente Admin nel Dashboard

9 nov 2011, 21:02:58
Visualizzazioni: 14K
Voti: 5

Sto cercando di impostare un reindirizzamento in modo che i miei utenti amministratori vengano reindirizzati a una pagina diversa dal dashboard all'interno dell'interfaccia di amministrazione di WordPress.

Se escludo la mia condizione, il reindirizzamento funziona, ma reindirizza anche gli utenti non amministratori e non voglio che accada.

Ecco il codice che ho inserito nel file functions.php

add_filter('login_redirect', 'dashboard_redirect');
function dashboard_redirect($url) {
  global $current_user;
  get_currentuserinfo();
  $level = (int) $current_user->wp_user_level;

  if ( $level > 10  ) {
    $url = 'wp-admin/edit.php';
  }

  return $url;
}     
1
Commenti

Perché non accettare come corretta la risposta che ti ha sicuramente fatto risparmiare tempo?

Johannes Pille Johannes Pille
26 nov 2011 01:47:30
Tutte le risposte alla domanda 4
0

Non dovresti usare i Livelli Utente. I Livelli Utente sono stati sostituiti in WP 2.0 e sono stati ufficialmente deprecati dalla versione 3.0.

add_filter( 'login_redirect', 'dashboard_redirect' );
function dashboard_redirect( $url ) {
    if ( current_user_can( 'manage_options' ) {
         $url = esc_url( admin_url( 'edit.php' ) );
    }

    return $url;
}    

Farà quello che desideri.

9 nov 2011 21:09:52
0

Se vuoi reindirizzare a un'altra pagina ogni volta che tentano di accedere alla dashboard, e non solo dopo il login, usa qualcosa come questo:

add_action( 'current_screen', function() {
    $screen = get_current_screen();
    if ( isset( $screen->id ) && $screen->id == 'dashboard' ) {
        wp_redirect( admin_url( 'edit.php?post_type=my-post-type' ) );
        exit();
    }
} );
16 nov 2020 07:08:35
1

Puoi anche aggiungere questa semplice azione al 'login_form' (vedi questo sito per maggiori dettagli).
Ad esempio, per reindirizzare alla dashboard, puoi usare:

add_action('login_form', 'redirect_after_login');
function redirect_after_login() {
    global $redirect_to;
    if (!isset($_GET['redirect_to'])) {
        $redirect_to = get_option('siteurl') . '/wp-admin/index.php';
    }
}
12 gen 2012 13:44:44
Commenti

questo ha funzionato alla grande per me.

TJ Sherrill TJ Sherrill
23 apr 2013 18:55:44
0

Prova a racchiudere la funzione con questa condizione current_user:

if (current_user_can('administrator')) {
// Il tuo Codice di Reindirizzamento Qui
}
9 nov 2011 21:09:24