誰もがWordPressでDBに問い合わせることによって著者の特権を持っているすべてのユーザーを取得し、それらによって書かれた投稿の数によってそれらを注文する方法を教えてもらえますか。
DBからすべてのユーザーを取得するには、次のクエリを使用します。
$authors = $wpdb->get_results(
"SELECT ID, user_nicename from $wpdb->users ORDER BY display_name"
);
データベースからカスタムデータを取得したくないのであれば、 WPDB
クラス(またはそのグローバルオブジェクト)を利用する必要はほとんどありません。しかし、そのようにすることも明らかに可能です。
完全性を期すために、ifのように、より抽象的な関数を使用しない理由がある場合は、ユーザーロールが存在するため、select構文で JOIN
を使用する必要があります。usermetatable.
しかし、 get_users
関数を使うほうがはるかに簡単です。
$args = array(
'role' => 'author',
'orderby' => 'display_name'
);
$authors = get_users( $args );
[編集]コメント内の質問は(投稿数順):
'post_count'
パラメータの引数として'orderby'
を使用します(そして可能なすべての引数を提供するリンクされたコーデックスページを読んでください)。
$args = array();
$args['fields'] = array( 'ID', 'display_name' );
$args['role'] = 'author';
$authors= get_users( $args );