処理タイプ別ターミナルコマンドまとめ、AIエージェントが実行するコマンドなどを紹介しています

wp user list コマンド情報まとめ

ターミナルの wp user list コマンドについて、オプション情報、出力カラムの意味、wp user get との違い、AIエージェントが実行した場合の危険性を紹介しています。

wp user list とは

wp user list(WP-CLI user list)は、WordPress に登録されているユーザーを一覧表示する WP-CLI コマンドです。

ロール・登録日・メールアドレスなどの条件で絞り込みができるほか、CSV や JSON 形式での出力にも対応しています。

データベースを変更しない読み取り専用の操作のため、開発環境・本番環境を問わず安心して使えます。

主なオプション

オプション意味
--role=<role>指定したロールのユーザーのみを取得する(例:administrator, editor, subscriber
--fields=<fields>出力するカラムをカンマ区切りで指定する。省略すると ID,user_login,display_name,user_email,user_registered,roles が表示される
--format=<format>出力形式を指定する(tablecsvjsonidscount)。デフォルトは table
--number=<number>取得するユーザー数の上限を指定する。デフォルトはすべてのユーザーを取得する
--orderby=<field>並び順の基準フィールドを指定する(例:ID, user_registered, display_name
--order=<order>昇順(ASC)または降順(DESC)を指定する。デフォルトは ASC
--search=<keyword>ユーザーログイン名・表示名・メールアドレスを対象にキーワード検索する
--blog_id=<id>マルチサイト環境で操作対象のサイト ID を指定する
wp user list の主なオプション一覧

オプションは WordPress の WP_User_Query のパラメータに対応しており、管理画面のユーザー検索と同じ粒度で絞り込みが可能です。

すべてのオプションは wp user list --help で確認できます。

wp user list にて出力されるカラム

実際に wp user list を実行すると、次のような出力が得られます。

+----+------------+--------------+----------------------+---------------------+---------------+
| ID | user_login | display_name | user_email           | user_registered     | roles         |
+----+------------+--------------+----------------------+---------------------+---------------+
|  1 | admin      | Admin User   | admin@example.com    | 2023-01-01 00:00:00 | administrator |
|  2 | editor01   | Editor One   | editor@example.com   | 2023-06-15 10:00:00 | editor        |
|  3 | john       | John Doe     | john@example.com     | 2024-03-20 09:30:00 | subscriber    |
+----+------------+--------------+----------------------+---------------------+---------------+

各カラムの意味は以下の通りです。

カラム意味
IDユーザーの一意な数値ID。他の WP-CLI コマンドへの引数として使う
user_loginログイン時に使用するユーザー名
display_name記事の著者名などに表示される名前
user_emailユーザーに紐づくメールアドレス
user_registeredユーザーの登録日時(YYYY-MM-DD HH:MM:SS 形式)
rolesユーザーに割り当てられたロール(administratoreditorsubscriber など)
wp user list にて出力されるカラム

--fields オプションで user_urluser_pass(ハッシュ値)・user_nicename などの追加カラムも出力できます。

よく使う組み合わせ

ロールで絞り込んで一覧を確認する

# 管理者ユーザーのみ一覧表示する
wp user list --role=administrator

# 購読者(subscriber)の件数を確認する
wp user list --role=subscriber --format=count

# エディター以上のロールを持つユーザーを CSV で出力する
# エディター(編集者)のロールを持つユーザーを CSV で出力する
wp user list --role=editor --format=csv > editors.csv

ロール別のユーザー数確認やアカウント棚卸しに役立ちます。

--format=count は件数のみを返すため、スクリプト内の条件分岐に組み込みやすいです。

キーワード検索で特定ユーザーを探す

# メールアドレスや名前で部分検索する
wp user list --search="example.com"

# ユーザーログイン名で検索する
wp user list --search="admin"

# 検索結果を ID と表示名だけに絞る
wp user list --search="john" --fields=ID,user_login,display_name,user_email

ユーザー数が多いサイトで特定のアカウントを探すときに便利です。

--search はログイン名・表示名・メールアドレスを横断して検索するため、いずれかの項目に一致するユーザーが返されます。

JSON 形式で出力してスクリプトと連携する

# 全ユーザーを JSON で出力して jq でメールアドレスだけ抽出する
wp user list --format=json | jq '.[].user_email'

# IDのみ出力して他のコマンドに渡す
wp user list --role=subscriber --format=ids

# 登録日降順で最近のユーザーを10件確認する
wp user list --orderby=user_registered --order=DESC --number=10

--format=jsonjq を組み合わせることで、メールアドレスやロールなど特定フィールドだけを柔軟に取り出せます。

--format=idswp user delete などの引数に直接渡せるため、一括操作の前段確認として活用できます。

wp user list と wp user get の違い

どちらもユーザーデータを参照するコマンドですが、対象の粒度と取得できる情報量が異なります。

項目wp user listwp user get
対象複数ユーザーを一覧表示特定1件のユーザーを詳細表示
指定方法条件(ロール・キーワードなど)ユーザーID またはログイン名(必須)
取得できる情報指定フィールドのみ(デフォルト6カラム)ユーザーのすべてのフィールド(メタデータ含む)
向いている用途一覧確認・IDの洗い出し・集計特定ユーザーの詳細確認・メタ情報の参照
出力形式table / csv / json / ids / counttable / json / yaml
wp user list と wp user get の違い

「条件に合うユーザーを絞り込む」作業には wp user list、「特定ユーザーのメタデータや詳細情報を確認する」作業には wp user get <ID> を使うのが一般的な流れです。

ユースケース

長期間ログインのない購読者アカウントを洗い出す

# 購読者の一覧を登録日昇順(古い順)で CSV 出力する
wp user list \
  --role=subscriber \
  --fields=ID,user_login,user_email,user_registered \
  --orderby=user_registered \
  --order=ASC \
  --format=csv \
  > old_subscribers.csv

# 件数を確認する
wp user list --role=subscriber --format=count

不要なアカウントの棚卸しや、会員サイトの退会処理前の対象確認に活用できます。

削除前には必ず wp user list で対象を確認し、wp user delete は人間がレビューしてから実行してください。

管理者アカウントを棚卸ししてセキュリティを確認する

# 管理者の ID・ログイン名・メールアドレスを一覧表示する
wp user list \
  --role=administrator \
  --fields=ID,user_login,user_email,user_registered \
  --orderby=user_registered \
  --order=ASC

管理者権限を持つアカウントが意図せず増えていないかを定期的に確認するのに有効です。

不審な管理者アカウントを発見した場合は wp user remove-role <ID> administrator でロールを変更するか、wp user delete <ID> でアカウントを削除してください。

AIエージェントが実行しようとした場合

AIエージェントの目的

AIエージェントは主に次のような目的で wp user list を実行しようとすることがあります。

  • 削除・ロール変更などの操作を行う前に、対象ユーザーの ID やロールを確認するために実行することがあります。
  • サイトのユーザー構成を把握するための初期調査として、ロール別の件数や登録状況を取得するために実行することがあります。
  • 後続処理(wp user deletewp user update など)に渡すユーザー ID を --format=ids で取得するために実行することがあります。

危険性

wp user list コマンドは、ユーザーデータの読み取りのみを行いデータベースを一切変更しません。

危険性はなく、AIエージェントが実行しても問題ありません。ただし出力にはメールアドレスなど個人情報が含まれるため、ログへの記録や外部への送信が行われないよう注意が必要です。

また --format=ids の出力を wp user delete に直接渡すパイプ処理をエージェントが自動構築する場合は、削除対象を人間が事前に確認する手順を必ず挟んでください。