Blenden Sie Benutzer mit einer bestimmten Rolle aus der Benutzerliste im WordPress-Administrations-Dashboard aus

Lesezeit: 2 Minuten

Benutzer-Avatar
Rakhi Prajapati

Ich habe zwei Rollen namens Agent und Subagent. Ich möchte diese beiden spezifischen Rollen aus der Admin-Benutzerliste ausblenden.

Ich habe versucht, die zu verwenden pre_user_query Filter, konnte es aber nicht zum Laufen bringen.

Könnte jemand bitte einen richtigen Weg vorschlagen, es zu tun?

Vielen Dank,

  • Vielleicht kannst du dir daraus eine Vorstellung machen. stackoverflow.com/questions/20922108/…

    – Nirmohi

    3. August 2018 um 8:09 Uhr

  • ^^ schalten Sie einfach die Rolle anstelle des Benutzernamens um.

    – Ständer

    3. August 2018 um 8:11 Uhr

  • Ich muss dasselbe tun, als gäbe es 5 Benutzer mit der Rolle „Agent“. Also möchte ich diese Benutzer aus der Benutzerliste ausblenden.

    – Rakhi Prajapati

    3. August 2018 um 8:12 Uhr

  • @nir dies dient zum Ausblenden des Administrators, wenn der Administrator angemeldet ist. Ich möchte Benutzer mit der Rolle „Agent“ und „Subagent“ aus der Benutzerliste ausblenden.

    – Rakhi Prajapati

    3. August 2018 um 8:14 Uhr

Benutzer-Avatar
kubi

Einfacher & sicherer:

add_filter('pre_get_users', function ($user_query) {
  // use the sluglike role names, not their "display_name"s 
  $user_query->set('role__not_in', ['agent', 'subagent']);
});

role__not_in verfügbar seit WP 4.4.

Achtung: Die Rollen (und ihre Benutzeranzahl) werden weiterhin über der Benutzertabelle angezeigt.

  • Danke @kubi für die Lösung.

    – Rakhi Prajapati

    9. Juni 2021 um 14:02 Uhr

Benutzer-Avatar
Rakhi Prajapati

Ich habe hier die perfekte Lösung für das gefunden, was ich wollte: https://rudrastyh.com/wordpress/pre_user_query.html

add_action('pre_user_query','hide_all_agents_subagents');

function hide_all_agents_subagents( $u_query ) {
    
    $current_user = wp_get_current_user();
    if ( $current_user->roles[0] != 'administrator' ) { 
        global $wpdb;
        $u_query->query_where = str_replace(
            'WHERE 1=1', 
            "WHERE 1=1 AND {$wpdb->users}.ID IN (
                SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta 
                    WHERE {$wpdb->usermeta}.meta_key = '{$wpdb->prefix}capabilities'
                    AND {$wpdb->usermeta}.meta_value NOT LIKE '%agent%' AND {$wpdb->usermeta}.meta_value NOT LIKE '%subagent%')", 
            $u_query->query_where
        );
    }
}

  • Vielen Dank das ist was ich gesucht habe. 🙂

    – Arman H

    30. April 2020 um 8:47 Uhr

  • Hallo @armanH, hoffe es hat dir geholfen. Vergessen Sie nicht, die Antwort zu positiv zu bewerten. Vielen Dank.

    – Rakhi Prajapati

    20. August 2021 um 6:28 Uhr


1311050cookie-checkBlenden Sie Benutzer mit einer bestimmten Rolle aus der Benutzerliste im WordPress-Administrations-Dashboard aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy