it-swarm.com.de

Leiten Sie Benutzer ohne Administratorrechte von wp-admin/index.php (Haupt-Dashboard-Seite) zu wp-admin/profile.php um

Ich habe es so eingestellt, dass Benutzer ohne Administratorrechte den Link "Dashboard" nicht sehen können oder keinen Zugriff auf die Hauptseite "wp-admin/index.php" haben. Ich habe auch ein Plugin hinzugefügt, das Benutzer ohne Administratorrechte daran hindert, eine neue Seite zu erstellen . Immer wenn Benutzer ohne Administratorberechtigung versuchen, eine neue Seite hinzuzufügen, werden sie versehentlich zu " wp-admin/index.php? Permissions_error = true " weitergeleitet. Dies ist die wichtigste " wp- admin/index.php "oder" Dashboard ".

Wie schränke ich den Zugriff auf die Seite wp-admin/index.php (Haupt-Dashboard) ein oder leite sie auf die Seite wp-admin/profile.php um?

screenshot von dem, was ich versuche zu erreichen:  Wenn jemand klug genug wäre, "? Permissions_error = true" neben "wp-admin/index.php" in der URL-Adresse einzufügen, würde er sogar Zugriff auf die Haupt-Dashboard-Seite "wp-admin/index.php" erhalten wenn sie keine Erlaubnis dazu haben.

  • Ich habe versucht, "Redirect 301 /localhost/ft/wp-admin/index.php?permissions_error=true http://google.com " zur .htaccess-Datei hinzuzufügen, aber es funktioniert aufgrund der " ? permissions_error = true "
1
lee

Die einfachste Lösung ist, load-index.php einzuhängen und Benutzer ohne Administratorrechte zu ihrem Profil umzuleiten. Den Zugriff auf diese Seite effektiv blockieren. Ich werde die Berechtigungsprüfung in eine Funktion für dieses Beispiel einschließen (wir werden sie mehrmals verwenden).

function _wpse206466_can_view()
{
    // or any other admin level capability
    return current_user_can('manage_options');
}


add_action('load-index.php', 'wpse206466_load_index');
function wpse206466_load_index()
{
    if (!_wpse206466_can_view()) {
        $qs = empty($_GET) ? '' : '?'.http_build_query($_GET);
        wp_safe_redirect(admin_url('profile.php').$qs);
        exit;
    }
}

Möglicherweise möchten Sie auch die Admin-Indexseite aus dem Admin-Menü entfernen, wenn die Benutzer nicht darauf zugreifen können. Haken Sie dazu in admin_menu ein, überprüfen Sie die Funktion und entfernen Sie die Seite.

add_action('admin_menu', 'wpse206466_remove_index');
function wpse206466_remove_index()
{
    if (!_wpse206466_can_view()) {
        remove_menu_page('index.php');
    }
}

Hier ist alles was als Plugin .

2
chrisguitarguy