J'essaie actuellement de configurer une redirection pour que mes utilisateurs administrateurs soient redirigés vers une page autre que le tableau de bord dans l'interface administrateur de wordpress.
Si je laisse mon conditionnel, la redirection fonctionne, mais elle redirige également les utilisateurs non administrateurs et je ne le souhaite pas.
Voici le code que j'ai dans 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;
}
Vous ne devez pas utiliser Userlevels . Les niveaux d'utilisateur ont été remplacés dans WP 2.0 et sont officiellement obsolètes depuis la version 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;
}
Fera ce que tu veux.
Yan ajoute également cette action simple à la 'login_form' (voir this site pour plus de détails).
Par exemple, pour rediriger vers un tableau de bord, vous pouvez utiliser:
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';
}
}
Essayez d'encapsuler la fonction avec cette condition current_user:
if (current_user_can('administrator')) {
// Your Redirect Code Here
}