WordPressの管理画面上でWP-CLIコマンドを実行できるプラグインです。ターミナル風のインタラクティブなインターフェイスを提供し、サーバーにSSHアクセスすることなくWP-CLIコマンドを実行できます。
- ダークテーマの本格的なターミナル風UI
- リアルタイムでのコマンド実行結果表示
- 等幅フォントでの見やすい出力
- Enterキーでコマンド実行
- ↑/↓キーでコマンド履歴の移動
- 自動フォーカス機能
- WP-CLI pharファイルの自動ダウンロード機能
- プラグイン内にWP-CLIを内蔵可能
- 外部インストール不要
- shell実行不可の環境(WordPress Playground の PHP WASM)を自動検出
- wp-cli.phar を同一PHPプロセス内で実行するインプロセスランナーで動作
- ワンタイムトークンによるランナーの認可(コマンド内容はサーバー側で確定)
- 管理者権限でのアクセス制限
- nonce認証によるCSRF対策
- 危険なコマンドの実行制限
- db exportファイルの安全な保存場所
- Webアクセス不可能なディレクトリへの出力
- このプラグインをWordPressの
wp-content/plugins/ディレクトリにアップロード - WordPressの管理画面でプラグインを有効化
- 「ツール」→「WP-CLI」にアクセス
- WordPress管理画面の「ツール」メニューから「WP-CLI」をクリック
- ターミナル画面でWP-CLIコマンドを入力(
wpは不要) - Enterキーを押してコマンドを実行
# オプションの一覧表示
option list
# ユーザー一覧表示
user list
# プラグイン一覧表示
plugin list
# キャッシュクリア
cache flush
# データベース最適化
db optimize
# データベースエクスポート(安全なディレクトリに自動保存)
db export
# サイト情報表示
core versionプラグイン画面に「WP-CLIが見つかりません」と表示された場合:
- 「WP-CLI pharファイルをダウンロード」ボタンをクリック
- 自動的にWP-CLI pharファイルがダウンロードされます
- ページを再読み込みして利用開始
このプラグインはセキュリティと安定性のため、pharファイル版のWP-CLIのみを使用します:
- プラグイン内蔵wp-cli.phar(最優先)
- WordPressルートディレクトリのwp-cli.phar
- ドキュメントルートのwp-cli.phar
※サーバーインストール版のWP-CLIは使用せず、環境依存を回避します。
- Enter: コマンド実行
- ↑: 前のコマンドを履歴から呼び出し
- ↓: 次のコマンドを履歴から呼び出し
以下のような危険なコマンド・文字列を含む実行は制限されています:
rm,del,formatsudo,chmod,chown- リダイレクト記号:
>,>> - パイプ:
| - コマンド連結:
&,;
db exportコマンドは自動的に安全なディレクトリに保存- 保存場所:
wp-content/plugins/dashboard-wp-cli/exports/ - .htaccessでWebアクセスを完全拒否
- タイムスタンプ付きファイル名で重複を防止
- 例:
database_export_2025-08-27_20-35-45.sql
- WordPress 4.6以上
- PHP 7.0以上
- 管理者権限
dashboard-wp-cli/
├── dashboard-wp-cli.php # メインプラグインファイル
├── wpcli-runner.php # インプロセスランナー(WordPress Playground 用)
├── assets/
│ ├── css/
│ │ └── admin.css # 管理画面スタイル
│ └── js/
│ └── admin.js # 管理画面スクリプト
├── wp-cli.phar # WP-CLI実行ファイル(自動ダウンロード)
├── .gitignore # Gitignore設定
└── README.md # このファイル
DashboardWPCLI: メインクラスadd_admin_menu(): 管理画面メニュー追加execute_wpcli_command(): WP-CLIコマンド実行download_wpcli_phar(): WP-CLI自動ダウンロードis_wpcli_available(): WP-CLI利用可能性チェックprocess_db_export_command(): データベースエクスポートの安全な処理get_secure_export_directory(): 安全なエクスポートディレクトリの作成
コマンド実行時に問題が発生した場合、以下の詳細情報が表示されます:
- 実行されたコマンド
- 完全なコマンドライン
- WP-CLIのパス
- WordPressのパス
- 実行結果
症状: 「WP-CLI pharファイルが見つかりません」エラー
解決方法:
- 「WP-CLI pharファイルをダウンロード」ボタンをクリック
- 手動でwp-cli.pharをプラグインディレクトリに配置
- wp-envなどのローカル環境ではSSL設定を確認
症状: コマンドが正常に実行されない
確認事項:
- PHP関数
shell_exec()が有効化されている - ファイル権限が適切に設定されている
- サーバーのセキュリティ制限
WordPress Playground(@wp-playground/cli など)では shell_exec() が動作しないため、
プラグインが自動的にインプロセスランナー(wpcli-runner.php)へ切り替えます。
wp-cli.phar がプラグインディレクトリに存在すればそのまま動作します。
注意点:
db exportなどmysqldumpに依存するコマンドは、PlaygroundのSQLite環境では動作しません- Query Monitor プラグインを有効化するとPlaygroundではログイン済みリクエストが 500エラーになることがあります(本プラグインとは無関係の非互換)。無効化してください
症状: ターミナル画面が正しく表示されない
解決方法:
- ブラウザのキャッシュをクリア
- JavaScriptが有効になっていることを確認
- ブラウザの開発者ツールでエラーを確認
GPL v2 or later
開発者情報をここに記載
- Playground環境でのdbコマンド制限: WordPress Playground(SQLite環境)を検出した場合、管理画面に
dbコマンドが使用できない旨の警告を表示 - dbコマンド実行時のエラー: Playground環境で
dbコマンド(db export、db optimizeなど)を実行しようとした場合、処理を実行せず分かりやすいエラーメッセージを返すように変更
- WordPress Playground 対応: shell実行不可の環境(PHP WASM)を自動検出し、wp-cli.phar を同一PHPプロセス内で実行するインプロセスランナー(
wpcli-runner.php)を追加 - ワンタイムトークン認可: ランナーはWordPress非ロードの単独エンドポイントのため、権限・nonce検証済みのAJAXハンドラーが発行する使い捨てトークン(有効期限120秒・実行前削除)でのみ実行可能。コマンド内容はトークン発行時にサーバー側で確定
- shell_exec 判定の改善:
function_exists()だけでなく実際の実行結果で判定(Playgroundでは定義済みだが常にnullを返すため)
- コーディング規約対応: WordPress Coding Standards (WPCS) に完全準拠
- 入力サニタイズ強化:
wp_unslash()+sanitize_text_field()を全スーパーグローバル変数に適用 - コード品質向上: Yoda 記法、
gmdate()、set_time_limit()、wp_delete_file()への統一
- Local WP 対応: php-fpm 検出時に CLI バイナリを自動解決
- DB 接続修正:
mysqli.default_socketを注入して Local WP の MySQL ソケットに接続 - ファイル分割: CSS・JS をそれぞれ
assets/css/admin.css・assets/js/admin.jsに分離 - phar 検証強化: shebang・PHP タグ・ZIP の各形式に対応
- セキュリティ強化: db exportファイルの安全な保存場所
- リモートサーバー対応: 共有ホスティング環境での動作安定性向上
- pharファイル専用: サーバーインストール版WP-CLIを除外して環境依存を回避
- エラーハンドリング強化: PHP警告抑制と例外処理追加
- wp-env対応: ローカル開発環境でのダウンロード問題修正
- 初回リリース
- ターミナル風インターフェイス実装
- WP-CLI自動ダウンロード機能
- コマンド履歴機能
- 基本セキュリティ機能
バグ報告や機能要望は、GitHubのIssuesページまでお願いします。
プルリクエストやバグ報告を歓迎します。開発に参加する場合は、以下のガイドラインに従ってください:
- フォークしてブランチを作成
- 変更をコミット
- プルリクエストを送信
このプラグインの使用によって生じたいかなる損害についても、作者は責任を負いません。本番環境での使用前に、必ずテスト環境で動作を確認してください。
