Redirecționare Utilizator Administrator în Dashboard

9 nov. 2011, 21:02:58
Vizualizări: 14K
Voturi: 5

Încerc să configurez o redirecționare astfel încât administratorii să fie redirecționați către o pagină diferită de dashboard în interfața de administrare WordPress.

Dacă omit condiționalul, redirecționarea funcționează, dar afectează și utilizatorii ne-administratori, ceea ce nu doresc.

Iată codul pe care îl am în 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
Comentarii

Cum ar fi să accepți ca corecte răspunsurile care cu siguranță ți-au economisit timp?

Johannes Pille Johannes Pille
26 nov. 2011 01:47:30
Toate răspunsurile la întrebare 4
0

Nu ar trebui să folosești Niveluri de utilizator. Nivelurile de utilizator au fost înlocuite în WordPress 2.0 și au fost oficial depreciate începând cu versiunea 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;
}    

Va face exact ceea ce dorești.

9 nov. 2011 21:09:52
0

Dacă dorești să redirecționezi către o altă pagină de fiecare dată când se încearcă accesarea panoului de control, nu doar după autentificare, folosește ceva de genul acesta:

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

Yan de asemenea adaugă această acțiune simplă la 'login_form' (vezi acest site pentru mai multe detalii).
De exemplu, pentru a redirecționa către panoul de control, poți folosi:

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 ian. 2012 13:44:44
Comentarii

asta a funcționat excelent pentru mine.

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

Încearcă să înfășori funcția cu această condiție current_user:

if (current_user_can('administrator')) {
// Codul tău de Redirecționare Aici
}
9 nov. 2011 21:09:24