WP-CLIはコマンドラインからWordPressをコントロール(インストールしたり、アップデートしたり、設定を変更したり、など)するためのツールです。Taiさん(@tekapo)が分かりやすい記事を2つ書かれているので、まずはそちらを参照してくだい。

MAMP環境で使おうとするとエラーがでるのと、WP-CLIの方もバージョンアップされているので、その辺りを書いておきます。先日開催されたWordCamp San FranciscoでもWP-CLIのセッションがあったので、それも参考にしています。

ちなみに必要な環境は:

  • SSHアクセス(ローカルだと関係ないかな。リモートだと必要)
  • PHP 5.3.2+(MacだとMAMP入れなくてもデフォルトで入っている)
  • WordPress 3.4+
  • ある程度のRAM(WordPressのシェルプロセスはそこそこメモリを食うらしい)
  • Linux/Mac(Windowsは開発中。Winデベロッパは是非contributeを!とのこと)

インストール

インストールのコマンドラインは最近httpsを使う仕様に変更になったそうです。インストールする際は、必ず公式サイトで最新状況の確認を。

curl https://raw.github.com/wp-cli/wp-cli.github.com/master/installer.sh | bash

走らせるといろいろと必要な物を自動的にインストールしてくれます。特に問題なく完了するかと思いますが、最後に表示される下記の部分は重要です。

wp-cli/wp-cli suggests installing d11wtq/boris (Enhanced `wp shell` functionality)
Writing lock file
Generating autoload files

WP-CLI files have been succesfully installed.

To test WP-CLI, run:

    /Users/path/.wp-cli/bin/wp --info

Make sure you have the following line in your .bashrc file:

    # WP-CLI directory
    PATH=/Users/Toru/.wp-cli/bin:$PATH

export WP_CLI_PHP=/Applications/MAMP/bin/php/php5.3.14/bin/php

d11wtq/borisはオプションで入れてください、とのことなので必要になったら入れるでOKかと。

/Users/path/.wp-cli/bin/wp --infoのコマンドは打つとPHPとインストールしたWP-CLIの情報が表示される。されればOK。

次に、.bashrcに記述してくださいというのをする。PATH=/Users/Toru/.wp-cli/bin:$PATHはPATHを通すため。export WP_CLI_PHP=/Applications/MAMP/bin/php/php5.3.14/bin/phpはWP-CLIにMAMPに入っているPHPを使うように指定するため。

特にMAMPで使うにはこの2つ目のを指定しないと、Macでデフォルトで入っているPHP(/usr/bin/PHP)を使おうとして、うまくいかずエラーになる。それから、MAMPはバージョンによってインストールされているPHPが違うので、必要であれば変更する。ちなみに僕の環境に入れたMAMPは2.1.1で、PHPは5.4.4でした。なので下記のようにする。

WP_CLI_PHP=/Applications/MAMP/bin/php/php5.4.4/bin/php

これでインストールは完了。

WordPressをダウンロード

wp core download

でWordPressをダウンロードします。--path=を指定するか、cdで移動して打ちます。これも特に問題なく終わるかと思います。速いです。一瞬です。ファイルは展開されているので解凍は必要ありません。

wp-config.phpを設定してインストール

WordPresをダウンロードするだけならwgetやgitを使ってもできますが、ここからがWP-CLIの威力を発揮できるところです。

Taiさんの記事でもある通り、先ほどWordPressをダウンロードしたディレクトリへ移動し、以下の3つを順番に打っていきます。
wp core config

wp db create

wp core install

MAMPに含まれるMySQL以外でMySQLをインストールしていない場合、まずここでwp core configを打った後に下記のようなエラーがでると思います。

wp core config --dbname=wpclitest --dbuser=root --dbpass=root
sh: mysql: command not found

MacはデフォルトでMySQLが入っていないのでmysqlのコマンドが使えません。また、MAMPに入っているMySQLもそのままではPATHが通っていないので同様に使えません。なので、MAMPのMySQLのPATHを通してやります。

.bash_profileに下記を追加します。PHPの時と同様に、MAMPのバージョンによっては違うディレクトリの可能性もあるのでまず確かめてから、必要であれば編集して追加します。

export PATH=$PATH:/Applications/MAMP/Library/bin/

※上記でうまくPATHが通らない場合は、Mac mysql PATHや、Mac mysql PATH mampでググってください。

PATHを通した後、wp core configにオプションを指定して打ち、

wp core config --dbname=wpclitest --dbuser=root --dbpass=root
Success: Generated wp-config.php file.

と表示されたら成功です。もし下記のようなエラーが出たら、MAMPのサーバがきちんと起動しているか確認してみてください。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)

後はwp db createでデータベースを作成し、wp core installでインストールするだけです。

wp core installでは--urlオプションを設定しておきましょう。自動的に設定してくれると思い省略したらwww.example.comで設定されてしまいました。

指定したURLにアクセスすると、サイトが表示されるはずです。

サイトを立ち上げた後もコマンドで

まずはwp plugin statuswp theme status使って、インストール済みのプラグインとテーマのリストを確認しつつ、アップデートしたり、インストールしたり、削除するところから試してみると、WP-CLIの動作がイメージしやすく入りやすいと思います。

慣れたらいろいろ試してみては。

  • Built-in Commands | WP-CLI

参考資料

英語ですが、先日開催されたWordCamp San FranciscoでのセッションではAPIをプラグインで活用したり、カスタムコマンドを作ったりしてます。

それから、次のアップデートではwp importコマンドが実装されるようです。おもしろそう。(wp exportはすでに実装済み)