wordpressWP-CLIのパッケージコマンドを自作Tweetこの記事はWP-CLIアドベントカレンダー8日目の記事かつWordBench串本ぼっちアドベントカレンダーの8日目の記事です。今回は、WP-CLIのパッケージコマンドというやつを作る方法について解説します。WP-CLIの自作コマンドを開発する方法WP-CLIの自作コマンドを開発するには2種類の方法があります。WordPressのプラグインとして開発1つ目の方法はWordPressのプラグインとして開発する方法です。この方法では、WordPressのプラグイン内で、WP_CLI_Commandの拡張クラスを定義し、そのなかでコマンドを開発していきます。flushなどのコマンドを内蔵しています。パッケージコマンドとして、コマンド単体で開発もう一つの方法はパッケージコマンドとしてコマンド単体で開発する方法です。この方法のメリットは、たとえば1つのサーバー内に複数のWordPressがある場合に、それぞれにプラグインをインストールする必要がありません。serverもそうですね。あと、昨日の僕の記事、指定した開発者のプラグインの一覧を見るWP-CLIコマンドを作った。パッケージコマンドです。パッケージコマンドは他にもたくさんあるので、ぜひいろいろ試してみるといいでしょう。Indexはいろいろとうまく動作してないのでちょっと残念です。前置きが少し長くなりましたがパッケージコマンドの作り方を紹介します。事前準備パッケージコマンドは、WP-CLIがインストールされている環境ならどこに設置してもオッケーです。任意のディレクトリに作業用のディレクトリを作ってください。~/my-cli次にこのディレクトリの中にWP-CLI用のPHPファイルを作成します。cli.phpコマンド用のPHPファイルを準備出来たら、これをWP-CLIに読み込ませます。WP-CLIに読み込ませるには、WP-CLIの設定ファイルに記述する必要があります。設定ファイルがない場合は、以下のように作ってください。~/.wp-cli/config.ymlconfig.ymlが設定ファイルなので、以下のように記述してください。/path/to/cli.php/path/to/cli.phpは先ほど作成したPHPファイルまでのパスを指定してください。WP_CLI_Commandを継承したクラスをつくるWP-CLIのコマンドは、WP_CLI_Commandの拡張クラスを作って、その中にゴリゴリ書いていきます。今回は超カンタンな例として、指定した定数の値を取得するコマンドを作ってみます。想定しているコマンドは以下のような感じ。ABSPATHの値を取得するこのためのソースは以下のとおりです。);ポイントは以下のとおりです。WP_CLI_Commandを継承したクラスを作成する。WP_CLI::add_command()で、WP-CLIにコマンドを登録する。helpで表示されるヘルプに使用されます。__invoke()は、コマンドを実行された時にコールされるメソッドです。<constant-name>のようにサブコマンドを定義することもできます。Cookbookのページを見てください。パッケージ化WP-CLIにはパッケージコマンド用のリポジトリが用意されています。本日現在はトラブっていて動作しないのですが、いちおうパッケージ化の方法を紹介します。以下の例をもとにcomposer.jsonを作成してください。}}package-indexに対して登録申請を行う。composer.jsonを設置したらGitHubで公開してください。公開したら、repositories.txtにGitHubのURLを追記してプルリクエストを送信してください。あとは、WP-CLIの@danielbachhuberさんが登録してくれます。(ちなみにこの人は、かなり精力的な人で、WordPress関連のプロジェクトのプルリクエストをほとんど見てるんじゃないかっていうぐらいいろんなところに出没します。)書籍を執筆しました。