Utilizatorii sunt redirecționați către pagina principală în loc de wp-admin
După migrarea site-ului meu WordPress, utilizatorii care nu sunt Administratori sunt redirecționați către pagina principală după autentificare. Pe site-ul vechi erau redirecționați către wp-admin. Administratorul este redirecționat către wp_admin așa cum ar trebui.
Vreau ca utilizatorii să fie redirecționați către wp-admin
după autentificare.
Am modificat siteurl din baza de date (wp_options
), de asemenea am adăugat acest filtru în fișierul meu functions.php
:
function my_login_redirect( $redirect_to, $request, $user ) {
// Returnează URL-ul panoului de administrare
return admin_url();
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
Orice ajutor vă rog? Mulțumesc și Paște Fericit!

Ura, am reușit! De fapt, tema mea avea o redirecționare ca aceasta în functions.php
:
// Blochează accesul la /wp-admin pentru utilizatorii non-administratori.
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' ); // Legătură la 'init'
Tot ce trebuie să faci este să adaugi propria ta capabilitate de rol, de exemplu: !current_user_can( 'manage-reports' )
Acest lucru m-a ajutat foarte mult.

@Hello Lili are dreptate. Dar, ar trebui să verificăm și DOING_AJAX!
// Blochează accesul la /wp-admin pentru non-administratori.
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' ); // Legare la hook-ul 'init'

Codul de mai jos funcționează conform așteptărilor. Acest cod restricționează utilizatorii non-administratori să acceseze wp-admin sau pagina de profil.
add_action( 'admin_init', 'redirect_non_admin_users' );
/**
* Redirecționează utilizatorii non-administratori către pagina principală
*
* Această funcție este atașată la hook-ul de acțiune '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;
}
}

ULTIMA SOLUȚIE CARE FUNCȚIONEAZĂ Puteți dezactiva temporar redirecționarea din fișierul wp-login.php și apoi șterge toate pluginurile instalate sau actualizate recent.
- Dezactivați redirecționarea deschizând fișierul wp-login.php
2. Derulați în jos până la linia unde aveți codul "do_action( "login_form_{$action}" );" La mine era în jurul liniei 461
Comentați acea linie de cod pentru a dezactiva redirecționarea
Salvați fișierul. Acum veți putea vă autentifica folosind http://www.example.com/wp-login.php
Dezactivați sau ștergeți toate pluginurile instalate recent, în special cele care gestionează funcționalități de control al accesului
Ștergeți cookie-urile și cache-ul
