Word Pressでユーザーの一覧情報を出力したい

まっちー

まっちー

WordPressでユーザーの一覧を出力しようと思ったら、wp_list_authors()関数を使えば事足りる。

でもこれはある程度出力の形式が限られてしまうし、もっと変則的な一覧リストを作りたいなんてときに、php形式でユーザーの一覧データを取得できれば望ましいのだが、どうやら、そう都合よくデータを持ってこれる関数というのは、ないらしい。

カテゴリならget_categories()があるし、タグもget_tags()があるのに、それに対応するget_authors()みたいな関数はないようだ。

ではどうするか。方法はいろいろあると思うけど、とりあえずこんな一例を考えてみる。

$i = 1;

while(1) {

    $data = get_userdata($i);

    if(empty($data)) {

        break;

    } else {

    $userdata[] = $data;

    $i++;

    }

}

これならとりあえず、ユーザーのIDが存在する限りはデータを持ってこれる。ユーザーが3人しかいなかったら、IDが4のユーザーは存在しないはずなので、$dataには空の値が入る。空の値が入った時点で処理を終了しましょうと、まあそんな感じです。

ただしこのやり方だと、IDが4のユーザーはいないのにIDが5のユーザーが存在した場合、IDが5のユーザーの情報は持ってこれない。新規にユーザーを登録した後に前のユーザーを削除したりなんかすれば、たぶんこういう状況ができる。

……ってことに、これを書いているまさに今、気がついた。このメソッドダメじゃんねww

DBから直でデータを持ってくるようにしないとダメだろうか…?

$wpdb->query("SELECT * FROM wp_users");

foreach($wpdb->last_result as $key => $result) {

    $data[] = get_userdata($result->ID);

}

たぶん、こっちの方が良いよね。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL