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

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

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

wp post list とは

wp post list(WP-CLI post list)は、WordPress のデータベースに保存されている投稿データを一覧表示する WP-CLI コマンドです。

投稿タイプ・ステータス・カテゴリ・日付などの条件で絞り込みができるほか、出力フォーマットを CSV や JSON に切り替えてスクリプトと連携させることも可能です。

ファイルを一切変更しない読み取り専用の操作のため、開発環境・本番環境を問わず安心して使えます。

主なオプション

オプション意味
--post_type=<type>取得する投稿タイプを指定する(例:post, page, product)。デフォルトは post
--post_status=<status>取得するステータスを指定する(例:publish, draft, trash)。複数指定はカンマ区切りで行う
--fields=<fields>出力するカラムをカンマ区切りで指定する。省略すると ID,post_title,post_name,post_date,post_status が表示される
--format=<format>出力形式を指定する(tablecsvjsonidscount)。デフォルトは table
--numberposts=<number>取得件数を指定する。-1 ですべての投稿を取得する
--orderby=<field>並び順の基準カラムを指定する(例:ID, post_date, post_title
--order=<order>昇順(ASC)または降順(DESC)を指定する。デフォルトは DESC
--category=<id>指定したカテゴリIDに属する投稿のみを取得する
--s=<keyword>タイトル・本文・スラッグを対象にキーワード検索する
wp post list の主なオプション一覧

オプションは wp_query のパラメータに対応しており、WordPress の投稿取得と同じ粒度で絞り込みができます。

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

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

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

+-----+--------------------+--------------------+---------------------+-------------+
| ID  | post_title         | post_name          | post_date           | post_status |
+-----+--------------------+--------------------+---------------------+-------------+
| 123 | Hello World        | hello-world        | 2024-06-01 10:00:00 | publish     |
| 122 | Draft Post         | draft-post         | 2024-05-20 09:30:00 | draft       |
| 121 | About Us           | about-us           | 2024-04-15 08:00:00 | publish     |
+-----+--------------------+--------------------+---------------------+-------------+

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

カラム意味
ID投稿の一意な数値ID。他の WP-CLI コマンドへの引数として使う
post_title投稿のタイトル。管理画面の「タイトル」欄に対応する
post_nameURLに使われるスラッグ。パーマリンクの末尾部分に相当する
post_date投稿の作成日時(YYYY-MM-DD HH:MM:SS 形式)
post_status投稿のステータス(publishdrafttrashprivate など)
wp post list にて出力されるカラム

--fields オプションで post_authorpost_contentpost_modifiedcomment_count などの追加カラムも出力できます。

よく使う組み合わせ

特定の投稿タイプ・ステータスで絞り込む

# 固定ページの公開済み一覧を表示する
wp post list --post_type=page --post_status=publish

# カスタム投稿タイプ "product" の下書き一覧を表示する
wp post list --post_type=product --post_status=draft

# ゴミ箱に入っている全投稿タイプの投稿数を確認する
wp post list --post_status=trash --format=count

投稿タイプとステータスを組み合わせることで、管理画面では確認しにくい状態の投稿を素早く把握できます。

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

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

# CSV 形式で出力してファイルに保存する
wp post list --post_type=post --post_status=publish --format=csv > posts.csv

# JSON 形式で出力して jq で整形する
wp post list --format=json | jq '.[].post_title'

# ID のみを出力して他コマンドに渡す
wp post list --post_status=draft --format=ids

--format=csv はスプレッドシートへのインポートや他ツールとの連携に、--format=jsonjq と組み合わせた高度なフィルタリングに使えます。

--format=ids は投稿IDをスペース区切りで返すため、wp post delete などの引数に直接渡すパイプ処理が可能です。

表示するフィールドを絞って必要な情報だけ取得する

# IDとタイトルだけを表示する
wp post list --fields=ID,post_title

# 更新日時と著者IDも含めて表示する
wp post list --fields=ID,post_title,post_modified,post_author --post_status=publish

# 件数が多い場合は numberposts で制限する
wp post list --numberposts=20 --orderby=post_date --order=DESC

--fields で出力カラムを絞ると、大量の投稿がある環境でも見やすい出力が得られます。

--orderby--order を組み合わせることで、最新投稿や特定フィールドでソートした一覧を確認できます。

wp post list と wp post get の違い

どちらも投稿データを参照するコマンドですが、対象の粒度と用途が異なります。

項目wp post listwp post get
対象複数の投稿を一覧表示特定1件の投稿を詳細表示
指定方法条件(タイプ・ステータス・キーワードなど)投稿ID(必須)
取得できる情報指定フィールドのみ(デフォルト5カラム)投稿のすべてのフィールド(本文・メタデータ含む)
向いている用途一覧確認・IDの洗い出し・集計特定投稿の詳細確認・本文内容の確認
出力形式table / csv / json / ids / counttable / json / yaml
wp post list と wp post get の違い

「どの投稿が対象か絞り込む」作業には wp post list、「特定の投稿の本文やメタ情報を確認する」作業には wp post get <ID> を使うのが一般的な流れです。

ユースケース

ゴミ箱の投稿を一括削除する前に対象を確認する

# まず対象を確認する
wp post list --post_status=trash --fields=ID,post_title,post_date

# 件数を確認する
wp post list --post_status=trash --format=count

# 問題なければ一括削除する(要注意:不可逆的な操作)
wp post delete $(wp post list --post_status=trash --format=ids) --force

wp post list で対象を事前確認してから削除コマンドに渡すのがベストプラクティスです。

--force を付けた wp post delete はゴミ箱を経由せず完全削除するため、実行前に必ず内容を確認してください。

特定カテゴリの投稿一覧を CSV でエクスポートする

# カテゴリID=5 の公開済み投稿を CSV で出力する
wp post list \
  --post_type=post \
  --post_status=publish \
  --category=5 \
  --fields=ID,post_title,post_date,post_modified \
  --format=csv \
  --numberposts=-1 \
  > category5_posts.csv

特定カテゴリの投稿棚卸しや、外部ツールへのデータ移行の準備として活用できます。

--numberposts=-1 で全件取得、--format=csv でそのままスプレッドシートに貼り付けられる形式で出力されます。

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

AIエージェントの目的

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

  • 削除・更新などの操作を行う前に、対象となる投稿IDや件数を確認するために実行することがあります。
  • サイトの投稿データを把握するための初期調査として、タイプ・ステータス別の一覧を取得するために実行することがあります。
  • 後続処理(wp post deletewp post update など)に渡す投稿IDを --format=ids で取得するために実行することがあります。

危険性

wp post list コマンドは、投稿データの読み取りのみを行いファイルやデータベースを一切変更しません。

危険性はなく、AIエージェントが実行しても問題ありません。ただし --format=ids の出力を wp post delete --force などの破壊的コマンドにそのまま渡すパイプ処理をエージェントが自動構築する場合は、削除対象を人間が事前に確認する手順を必ず挟んでください。