Après la migration de mes utilisateurs du site wordpress qui ne sont pas des administrateurs sont redirigés vers la page d'accueil du site après la connexion . Sur l'ancien site, ils ont été redirigés sur wp-admin. L'administrateur est redirigé vers wp_admin comme il se doit.
Je veux que les utilisateurs soient redirigés vers wp-admin
après la connexion.
J'ai changé siteurl depuis la base de données (wp_options
), j'ai aussi ajouté ce filtre dans mon functions.php
:
function my_login_redirect( $redirect_to, $request, $user ) {
return admin_url();
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
Toute aide s'il vous plaît? Merci et joyeuses Pâques!
Yeeey, je l'ai compris! En fait, mon thème avait une redirection comme celle-ci dans functions.php
:
// Block Access to /wp-admin for non admins.
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' ); // Hook into 'init'
Tout ce que vous avez à faire est d’ajouter votre propre capacité de rôle, par exemple: !current_user_can( 'manage-reports' )
Cela m'a beaucoup aidé.
@ Bonjour Lili a raison. Mais nous devrions aussi vérifier DOING_AJAX!
// Block Access to /wp-admin for non admins.
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' ); // Hook into 'init'
Le code ci-dessous fonctionne comme prévu. Ce code restreint l'accès des utilisateurs non administrateurs à wp-admin ou à la page de profil.
add_action( 'admin_init', 'redirect_non_admin_users' );
/**
* Redirect non-admin users to home page
*
* This function is attached to the 'admin_init' action hook.
*/
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( home_url() );
exit;
}
}