WP Manifestindependent plugin directory
manifest / developer / dashboard-wp-cli

dashboard-wp-cli

wp-cli on dashboard

★ 1stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/atsushia/dashboard-wp-cli/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WP-CLI Dashboard Plugin

WordPressの管理画面上でWP-CLIコマンドを実行できるプラグインです。ターミナル風のインタラクティブなインターフェイスを提供し、サーバーにSSHアクセスすることなくWP-CLIコマンドを実行できます。

Plugin Screenshot

特徴

🖥️ ターミナル風インターフェイス

  • ダークテーマの本格的なターミナル風UI
  • リアルタイムでのコマンド実行結果表示
  • 等幅フォントでの見やすい出力

⌨️ インタラクティブ操作

  • Enterキーでコマンド実行
  • ↑/↓キーでコマンド履歴の移動
  • 自動フォーカス機能

📦 WP-CLI内蔵

  • WP-CLI pharファイルの自動ダウンロード機能
  • プラグイン内にWP-CLIを内蔵可能
  • 外部インストール不要

🧪 WordPress Playground 対応

  • shell実行不可の環境(WordPress Playground の PHP WASM)を自動検出
  • wp-cli.phar を同一PHPプロセス内で実行するインプロセスランナーで動作
  • ワンタイムトークンによるランナーの認可(コマンド内容はサーバー側で確定)

🔒 セキュリティ

  • 管理者権限でのアクセス制限
  • nonce認証によるCSRF対策
  • 危険なコマンドの実行制限
  • db exportファイルの安全な保存場所
  • Webアクセス不可能なディレクトリへの出力

インストール

  1. このプラグインをWordPressのwp-content/plugins/ディレクトリにアップロード
  2. WordPressの管理画面でプラグインを有効化
  3. 「ツール」→「WP-CLI」にアクセス

使用方法

基本的な使い方

  1. WordPress管理画面の「ツール」メニューから「WP-CLI」をクリック
  2. ターミナル画面でWP-CLIコマンドを入力(wpは不要)
  3. Enterキーを押してコマンドを実行

コマンド例

# オプションの一覧表示
option list

# ユーザー一覧表示
user list

# プラグイン一覧表示
plugin list

# キャッシュクリア
cache flush

# データベース最適化
db optimize

# データベースエクスポート(安全なディレクトリに自動保存)
db export

# サイト情報表示
core version

WP-CLIが見つからない場合

プラグイン画面に「WP-CLIが見つかりません」と表示された場合:

  1. 「WP-CLI pharファイルをダウンロード」ボタンをクリック
  2. 自動的にWP-CLI pharファイルがダウンロードされます
  3. ページを再読み込みして利用開始

機能詳細

サポートするWP-CLI実行方式

このプラグインはセキュリティと安定性のため、pharファイル版のWP-CLIのみを使用します:

  1. プラグイン内蔵wp-cli.phar(最優先)
  2. WordPressルートディレクトリのwp-cli.phar
  3. ドキュメントルートのwp-cli.phar

※サーバーインストール版のWP-CLIは使用せず、環境依存を回避します。

キーボードショートカット

  • Enter: コマンド実行
  • ↑: 前のコマンドを履歴から呼び出し
  • ↓: 次のコマンドを履歴から呼び出し

セキュリティ制限

危険なコマンドの制限

以下のような危険なコマンド・文字列を含む実行は制限されています:

  • rm, del, format
  • sudo, 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が見つからない

症状: 「WP-CLI pharファイルが見つかりません」エラー

解決方法:

  1. 「WP-CLI pharファイルをダウンロード」ボタンをクリック
  2. 手動でwp-cli.pharをプラグインディレクトリに配置
  3. wp-envなどのローカル環境ではSSL設定を確認

コマンド実行エラー

症状: コマンドが正常に実行されない

確認事項:

  1. PHP関数shell_exec()が有効化されている
  2. ファイル権限が適切に設定されている
  3. サーバーのセキュリティ制限

WordPress Playground での利用

WordPress Playground(@wp-playground/cli など)では shell_exec() が動作しないため、 プラグインが自動的にインプロセスランナー(wpcli-runner.php)へ切り替えます。 wp-cli.phar がプラグインディレクトリに存在すればそのまま動作します。

注意点:

  • db export などmysqldumpに依存するコマンドは、PlaygroundのSQLite環境では動作しません
  • Query Monitor プラグインを有効化するとPlaygroundではログイン済みリクエストが 500エラーになることがあります(本プラグインとは無関係の非互換)。無効化してください

表示の問題

症状: ターミナル画面が正しく表示されない

解決方法:

  1. ブラウザのキャッシュをクリア
  2. JavaScriptが有効になっていることを確認
  3. ブラウザの開発者ツールでエラーを確認

ライセンス

GPL v2 or later

作者

開発者情報をここに記載

更新履歴

1.2.1

  • Playground環境でのdbコマンド制限: WordPress Playground(SQLite環境)を検出した場合、管理画面にdbコマンドが使用できない旨の警告を表示
  • dbコマンド実行時のエラー: Playground環境でdbコマンド(db export、db optimizeなど)を実行しようとした場合、処理を実行せず分かりやすいエラーメッセージを返すように変更

1.2.0

  • WordPress Playground 対応: shell実行不可の環境(PHP WASM)を自動検出し、wp-cli.phar を同一PHPプロセス内で実行するインプロセスランナー(wpcli-runner.php)を追加
  • ワンタイムトークン認可: ランナーはWordPress非ロードの単独エンドポイントのため、権限・nonce検証済みのAJAXハンドラーが発行する使い捨てトークン(有効期限120秒・実行前削除)でのみ実行可能。コマンド内容はトークン発行時にサーバー側で確定
  • shell_exec 判定の改善: function_exists() だけでなく実際の実行結果で判定(Playgroundでは定義済みだが常にnullを返すため)

1.1.1

  • コーディング規約対応: WordPress Coding Standards (WPCS) に完全準拠
  • 入力サニタイズ強化: wp_unslash() + sanitize_text_field() を全スーパーグローバル変数に適用
  • コード品質向上: Yoda 記法、gmdate()、set_time_limit()、wp_delete_file() への統一

1.1.0

  • 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 の各形式に対応

1.0.1

  • セキュリティ強化: db exportファイルの安全な保存場所
  • リモートサーバー対応: 共有ホスティング環境での動作安定性向上
  • pharファイル専用: サーバーインストール版WP-CLIを除外して環境依存を回避
  • エラーハンドリング強化: PHP警告抑制と例外処理追加
  • wp-env対応: ローカル開発環境でのダウンロード問題修正

1.0.0

  • 初回リリース
  • ターミナル風インターフェイス実装
  • WP-CLI自動ダウンロード機能
  • コマンド履歴機能
  • 基本セキュリティ機能

サポート

バグ報告や機能要望は、GitHubのIssuesページまでお願いします。

貢献

プルリクエストやバグ報告を歓迎します。開発に参加する場合は、以下のガイドラインに従ってください:

  1. フォークしてブランチを作成
  2. 変更をコミット
  3. プルリクエストを送信

免責事項

このプラグインの使用によって生じたいかなる損害についても、作者は責任を負いません。本番環境での使用前に、必ずテスト環境で動作を確認してください。