Wählen Sie auf der Seite wpdb – Author / User Directory

Ich arbeite an einer WordPress-Site, wo ich eine Verzeichnisseite (authors.php) erstellt habe, die alle Benutzer und bestimmte Autoren-Meta auflistet.

Es funktioniert gut, aber ich versuche herauszufinden, wie man nur Benutzer zeigt, die das erforderliche Autoren-Meta ausgefüllt haben.

Ich habe viele verschiedene Dinge ausprobiert, aber ich konnte nicht erreichen, was ich brauche. Hier ist mein Code

get_results("SELECT * FROM $wpdb->users ORDER BY $order"); // query users foreach($users as $user) : // start users' profile "loop" ?> 

Alles andere, was ich versuche, liefert keine Ergebnisse. Gibt es eine Möglichkeit, nur Benutzer mit bestimmten Autoren-Meta-Feldern auszuwählen? Jede Hilfe wird geschätzt, danke.

Solutions Collecting From Web of "Wählen Sie auf der Seite wpdb – Author / User Directory"

Sie sind wahrscheinlich besser dran, get_users zu verwenden, die ein Array von zurückgibt

 < ?php // get all users, regardless of roll. If you do need to restrict by // role you can use the `role` argument: get_users(array('role' => 'author')); $uses = get_users(array('orderby' => 'nicename')); foreach ($users as $user) { // do stuff with $user, will have all the usual stuff, ID, user_email, etc echo '

', esc_html($user->ID), '

'; }

Alternativ können Sie das Argument all_with_meta für das Argument fields von get_users und ein Array von WP_User Objekten zurückholen:

 < ?php $users = get_users(array('fields' => 'all_with_meta')); foreach ($users as $user) { // $user will be a WP_User object. } 

Gibt es eine Möglichkeit, nur Benutzer mit bestimmten Autoren-Meta-Feldern auszuwählen?

Sie können dies auch mit den Benutzern tun! Verwenden Sie meta_query Argument meta_query , das genauso aussieht wie das Argument WP_Query WP_Query .

 < ?php $users = get_users(array( 'meta_query' => array( array( 'key' => 'whatever_your_meta_key_is', 'value' => 'the_meta_value_you_want', ) ), )); foreach ($users as $user) { // do stuff with $user }