AIにWP-CLIを使わせる最初の仕事は、記事の公開でもプラグイン更新でもありません。まず、WordPressの現在の状態を変更せずに確認することです。
投稿、プラグイン、テーマ、カテゴリを一覧にすると、管理画面を一つずつ開かなくても全体像を把握できます。ただし、読み取りコマンドでも対象サイトを誤ったり、非公開記事や内部情報を出力したりする可能性があります。
この記事では、CodexやClaude Codeへ許可する最初のWP-CLI操作を、少数の確認コマンドに限定して解説します。以下は架空環境用の例です。自分のサーバーへそのまま貼り付けず、契約先や管理者の実行方法を優先してください。
「読み取り専用」の範囲を決める
この記事で行うのは、次の確認です。
- WordPressが認識され、バージョンを取得できるか
- インストール済みプラグインの名前、状態、バージョン
- インストール済みテーマの名前、状態、バージョン
- 公開記事と下書きのID、タイトル、slug、状態、更新日時
- カテゴリのID、名前、slug、記事数
行わないことも明示します。
- 記事、設定、カテゴリ、利用者の作成・更新・削除
- WordPress本体、プラグイン、テーマ、翻訳の更新
- プラグインやテーマの有効化・無効化
- キャッシュ削除、cron実行、検索置換
- PHPコード、対話シェル、データベースコマンドの実行
- 設定値、認証情報、投稿本文、カスタムフィールドの一括表示
「調べるだけ」では範囲が曖昧です。確認する対象と、表示してよい項目まで決めます。
実行前に対象を確認する
WP-CLIを実行する前に、少なくとも次を管理者が確認します。
- 対象は本番かテスト環境か
- WordPressの場所と対象URL
- WP-CLIを実行するOS利用者
- 許可されたラッパーまたは実行方法
- 結果の保存先と共有範囲
WP-CLIには--pathや--urlなど、対象を指定するグローバル引数があります。AIが自由に書き換えるのではなく、管理者側のラッパーや設定で固定します。準備がまだの場合は、先にAIへWP-CLIを渡す前の準備を確認してください。
1. WordPressの状態を確認する
最初は、WordPressのバージョンと、対象パスがWordPressとして認識されるかを確認します。
wp core version
wp core is-installed
wp core versionはバージョンを表示します。wp core is-installedは、WordPressがインストール済みなら終了コード0を返します。後者は成功時に何も表示しない場合があるため、「空欄だから失敗」と判断せず、終了コードも確認します。
ここでエラーになった場合、別の場所を推測して探し回ったり、WordPressを再インストールしたりしません。対象パス、実行ユーザー、契約先の手順を管理者へ確認します。
2. プラグインの一覧を確認する
wp plugin list \
--fields=name,status,version,update,auto_update \
--format=table
確認できる主な項目は次のとおりです。
name:プラグインの識別名status:有効、無効などの状態version:現在のバージョンupdate:更新候補の有無auto_update:自動更新の状態
listは一覧を取得する操作で、更新を実行するupdateとは別です。更新候補が表示されても、その場で一括更新しません。予約、問い合わせ、決済、キャッシュに関係するプラグインは、影響範囲と復元方法を確認して別の作業として扱います。
一覧には、サイト構成を推測できるプラグイン名が含まれます。そのままSNSや公開チャットへ貼らず、保守担当者との共有に限定します。
3. テーマの一覧を確認する
wp theme list \
--fields=name,status,version,update,auto_update \
--format=table
現在有効なテーマ、無効なテーマ、バージョン、更新候補を確認できます。子テーマを利用している場合、有効な子テーマと親テーマの両方が必要になることがあります。「無効だから不要」と判断して削除しないでください。
テーマの有効化、更新、削除は表示全体に影響します。一覧確認と変更作業を同じ依頼にまとめません。
4. 投稿の一覧を件数限定で確認する
記事一覧は、表示する投稿状態、件数、項目を限定します。
wp post list \
--post_type=post \
--post_status=publish,draft \
--posts_per_page=20 \
--orderby=modified \
--order=DESC \
--fields=ID,post_title,post_name,post_status,post_modified \
--format=table
この例では、公開記事と下書きを更新日時の新しい順に20件だけ表示します。
ID:今後、対象を一件に限定するときに使う番号post_title:記事タイトルpost_name:URLに使われるslugpost_status:公開、下書きなどの状態post_modified:WordPress上の更新日時
本文や抜粋を一覧へ含めないのは、出力が大きくなり、非公開情報を意図せず共有するのを防ぐためです。予約者の情報を保存する独自投稿タイプがあるサイトでは、post_type=anyのような広い指定を使いません。
一件だけ詳しく確認する
対象の投稿IDが分かったら、必要な項目だけを読み取ります。
wp post get 123 \
--fields=ID,post_title,post_name,post_status,post_modified \
--format=json
IDは例です。タイトル検索だけで選ぶと同名記事を取り違える可能性があるため、確認後の作業は投稿IDで固定します。
5. カテゴリを確認する
wp term list category \
--fields=term_id,name,slug,count \
--format=table
カテゴリのID、名前、slug、記事数を確認できます。似た名前のカテゴリ、記事数が0のカテゴリ、表記揺れを見つける材料になります。
記事数が0だからといって削除してよいとは限りません。メニュー、固定ページ、予約案内などからリンクされている可能性があるため、整理は別の監査として行います。
「list」「get」でも確認が必要な理由
読み取り用に選んだコマンドは、意図としてWordPressの内容を変更しないものです。それでも、次の点には注意が必要です。
- WordPressの読み込み時に、テーマやプラグインの処理が動くことがある
- 追加パッケージやプラグインが独自のWP-CLIコマンドを登録できる
- エラーやデバッグ出力に内部パスが含まれることがある
- 一覧に非公開記事、利用者名、サイト構成が含まれることがある
- 更新候補の確認で外部通信やキャッシュ済み情報を参照する場合がある
コマンド名だけで安全と決めず、テスト環境で挙動を確認し、許可するコマンド、引数、出力項目を制限付きラッパーへ固定します。
最初は避ける出力
次の情報は、必要性と共有範囲を確認するまで一覧表示しません。
wp config listなどで取得できる設定値や認証関連情報- 利用者のメールアドレス、ログイン名、権限一覧
- 下書き、非公開ページ、問い合わせの本文
- 投稿メタ、オプション、データベースの全件出力
- サーバー内部の絶対パス、接続先、環境変数
- デバッグログやエラーログの全文
AIの回答に表示しなくても、作業ログや一時ファイルに残る場合があります。結果は必要な項目だけに絞り、不要になった一時データの扱いも管理者と決めます。
AIへの読み取り専用プロンプト
このWordPressの状態を、WP-CLIで読み取り専用監査してください。
許可する確認:
- WordPressのバージョンとインストール状態
- プラグイン名、状態、バージョン、更新候補
- テーマ名、状態、バージョン、更新候補
- 公開記事と下書きのID、タイトル、slug、状態、更新日時(最新20件)
- カテゴリのID、名前、slug、記事数
禁止事項:
- 作成、更新、削除、有効化、無効化、インストール
- キャッシュ削除、cron、DB、PHP、検索置換
- 設定値、利用者情報、投稿本文、メタ情報の表示
- 対象パス、URL、実行ユーザーの変更
実行前に予定する操作名と出力項目を示してください。
エラーや対象の不一致があれば追加操作をせず停止してください。
結果は確認済み、注意点、未確認項目に分け、
秘密情報や内部パスは表示しないでください。
実行経路が制限されていない環境では、この文章だけで安全を保証できません。管理者が技術的な許可リストと組み合わせます。
結果の読み方
読み取り監査の結果は、すぐに変更指示へ変えず、次の三つに分けます。
確認済み
実行したコマンドと出力から直接確認できた事実です。「有効なテーマは一つ」「公開記事は最新20件を確認」など、確認範囲も添えます。
注意点
更新候補がある、似たカテゴリがある、古いテーマが残っているなど、対応を検討する項目です。問題と断定せず、影響調査が必要だと示します。
未確認
予約フォームの動作、バックアップの復元、全記事の品質など、今回の一覧だけでは判断できない項目です。「表示されなかった」と「存在しない」を混同しません。
読み取り監査の完了チェック
- 対象サイトと本番・テストの区別を確認した
- 許可したラッパーだけを使用した
- 変更系の操作を実行していない
- 出力項目と件数を必要範囲へ限定した
- WordPress、プラグイン、テーマ、投稿、カテゴリを確認した
- 終了コードとエラーの有無を確認した
- 秘密情報、個人情報、本文を回答に表示していない
- 確認済み、注意点、未確認を分けて報告した
- 実行前後で意図しない更新がないことを確認した
ここまで終わって初めて、次に必要な作業を人が選びます。新規記事へ進む場合は、AIにWordPress記事の下書きを1件だけ登録させる方法で、重複確認と下書き停止の手順を確認してください。
まとめ
最初のWP-CLI作業では、情報をたくさん集めるより、対象と出力を狭く固定することが重要です。WordPressの状態、プラグイン、テーマ、最新の投稿、カテゴリを少数のlist・get操作で確認し、設定値や本文、利用者情報は表示しません。
確認結果は自動的な更新指示にせず、人が注意点と未確認事項を判断します。準備がまだの場合は権限・バックアップ・テスト環境の確認へ戻り、実行経路は制限付きラッパーで絞ってください。記事一覧は宿主さん向けWeb運営ガイドにまとめています。
参考資料
- WordPress Developer Resources:wp post list
- WordPress Developer Resources:wp post get
- WordPress Developer Resources:wp plugin list
- WordPress Developer Resources:wp theme list
- WordPress Developer Resources:wp term list
※利用できるコマンドと挙動は、WP-CLI、WordPress、追加パッケージ、テーマ、プラグイン、サーバー構成によって異なります。契約先と管理者の手順を優先してください。

