web-dev-qa-db-ja.com

作成者特権を持つすべてのユーザーを取得する

誰もがWordPressでDBに問い合わせることによって著者の特権を持っているすべてのユーザーを取得し、それらによって書かれた投稿の数によってそれらを注文する方法を教えてもらえますか。

DBからすべてのユーザーを取得するには、次のクエリを使用します。

$authors = $wpdb->get_results(
    "SELECT ID, user_nicename from $wpdb->users ORDER BY display_name"
);  
1
MidhuN

データベースからカスタムデータを取得したくないのであれば、 WPDB クラス(またはそのグローバルオブジェクト)を利用する必要はほとんどありません。しかし、そのようにすることも明らかに可能です。

完全性を期すために、ifのように、より抽象的な関数を使用しない理由がある場合は、ユーザーロールが存在するため、select構文で JOIN を使用する必要があります。usermetatable.

しかし、 get_users 関数を使うほうがはるかに簡単です。

$args = array(
    'role'         => 'author',
    'orderby'      => 'display_name'
);
$authors = get_users( $args );

[編集]コメント内の質問は(投稿数順):

'post_count'パラメータの引数として'orderby'を使用します(そして可能なすべての引数を提供するリンクされたコーデックスページを読んでください)。

3
Johannes Pille
$args = array();
$args['fields'] = array( 'ID', 'display_name' );
$args['role'] = 'author';
$authors= get_users( $args );

参照: http://codex.wordpress.org/Function_Reference/get_users

1
Rajeev Vyas