webentwicklung-frage-antwort-db.com.de

Benutzer werden anstelle von wp-admin auf die Startseite umgeleitet

Nach der Migration meiner WordPress-Site werden Benutzer die keine Administratoren sind nach dem Login auf die Homepage der Site umgeleitet . Auf der alten Seite wurden sie auf wp-admin umgeleitet. Der Administrator wird wie gewünscht zu wp_admin umgeleitet.

Ich möchte, dass die Benutzer nach der Anmeldung zu wp-admin umgeleitet werden.

Ich habe die Site-URL aus der Datenbank (wp_options) geändert und diesen Filter auch in meinen functions.php eingefügt:

function my_login_redirect( $redirect_to, $request, $user ) {


    return admin_url();
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

Irgendeine Hilfe bitte? Vielen Dank und Frohe Ostern!

1
Hello Lili

Yeeey, ich habe es herausgefunden! Eigentlich hatte mein Theme eine Weiterleitung wie diese in 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'

Sie müssen lediglich Ihre eigenen Rollenfunktionen hinzufügen, zum Beispiel: !current_user_can( 'manage-reports' )

Das hat mir sehr geholfen.

2
Hello Lili

@ Hallo Lili ist richtig. Aber wir sollten auch DOING_AJAX überprüfen!

// 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'
2
Byeongin Yoon

Der folgende Code funktioniert wie erwartet. Dieser Code beschränkt Benutzer ohne Administratorrechte auf den Zugriff auf WP-Administrator- oder Profilseite.

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;
    }
}
0
user3408779