WP-Dropdown-Benutzer ändern – Filtern nach Benutzerrolle

Lesezeit: 2 Minuten

Benutzer-Avatar
andrassberlin

Ich versuche die anzupassen wp_dropdown_users Funktion:

<form method="post" >
 <?php foreach ($_POST as $key => $val): ?>
 <?php endforeach ?>
 <?php wp_dropdown_users(array('selected' => ($_POST['user'] ? : get_current_user_id()))); ?>
  <input type="submit" value="go" />
 </form>

Das Dropdown-Feld sollte nur alle Benutzer mit Rolle auflisten "device" ('role' => 'device'). Wie kann ich es realisieren? Jemand bitte helfen Sie mir? Vielen Dank im Voraus!

Es ist möglich, dass die akzeptierte Antwort einmal funktioniert hat, aber es scheint nicht mehr zu funktionieren. WordPress filtert das Argument „Rolle“ heraus, bevor es die Abfrage erreicht. Ich habe es deswegen etwas abgeändert:

$users_with_role = implode(",", get_users ( array ( 'fields' => 'id', 'role' => 'customer' ) ) );

wp_dropdown_users(array(
    'selected' => ($_POST['user'] ? :    get_current_user_id()),
    'include_selected' => true,
    'include' => $users_with_role
));

  • Ich glaube, das funktioniert immer noch, aber ich werde es bearbeiten, wenn jemand findet, dass es nicht mehr funktioniert, da es jetzt ziemlich alt ist. Und ich glaube nicht, dass ich verstanden habe, wie akzeptierte Antworten funktionieren, da dies eigentlich keine akzeptierte Antwort hat. 😂

    – Lange

    5. Oktober 2020 um 18:11 Uhr


Auch wenn es in der nicht dokumentiert ist wp_dropdown_users Funktion können Sie den ‘role’-Parameter in args übergeben. Sie können jedes Argument übergeben, das von akzeptiert wird WP_User_Query::prepare_query().

Also zum Beispiel echo wp_dropdown_users( array( 'role' => 'administrator' ) ); zeigt ein Dropdown-Menü von Benutzern mit der Administratorrolle an. In Ihrem Fall hätten Sie

<?php echo wp_dropdown_users(
    array(
        'selected' => ($_POST['user'] ? :    get_current_user_id()),
        'role' => 'device'
    )
); ?>

Dies setzt voraus, dass Sie Benutzer mit der Rolle „Gerät“ haben, die nicht die Standardrolle ist. Echo nicht vergessen. wp_dropdown_users ohne wird nichts angezeigt.

  • Vielen Dank James. Das hilft mir!

    – andrassberlin

    8. Dezember 2015 um 9:31 Uhr

  • Funktioniert bei mir nicht (WP 4.5) – WordPress filtert Argumente

    – Andrej P

    28. Juli 2016 um 14:16 Uhr

Filter erstellen:

function filter_wp_dropdown_users_args($query_args) {
    $query_args['role'] = 'device';
    return $query_args;
}

und benutze es:

add_filter('wp_dropdown_users_args', 'filter_wp_dropdown_users_args');
wp_dropdown_users();
remove_filter('wp_dropdown_users_args', 'filter_wp_dropdown_users_args');

1206160cookie-checkWP-Dropdown-Benutzer ändern – Filtern nach Benutzerrolle

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

Privacy policy