[wp-cli]WordPressのダウンロードとバージョン管理について


コマンドラインからWordPressを操作するwp-cliネタ、ふたたびです。今回は小ネタですが、WordPressのバージョン確認とアップデートについて取り上げてみたいと思います。

■ WordPressのアップデート有無確認

$ wp core check-update --path=/home/vhosts/$(uname -n)/public_html
Success: WordPress is at the latest version.

ご覧のように、ドキュメントルートにあるWordPressは最新版であることがわかります。それではバージョン番号を確認してみましょう。

■ WordPressのバージョン確認

$ wp core version --path=/home/vhosts/$(uname -n)/public_html
4.1

本稿執筆時点での最新版、4.1がインストールされていることがわかりました。それでは次に、wp-cliを使ってWordPressをダウンロードする手順をここで少しご紹介します。

■ WordPressダウンロード

引数を何も指定しないとカレントディレクトリに英語版がダウンロードされます。

$ wp core download
Downloading WordPress 4.1 (en_US)...
Success: WordPress downloaded.

再度ダウンロードするとキャッシュを使った旨メッセージが出ます。また、ダウンロード先のディレクトリは「--path=〜〜〜」で指定することができます。

$ wp core download --path=${HOME}/tmp/ 
Downloading WordPress 4.1 (en_US)...
Using cached file '/root/.wp-cli/cache/core/en_US-4.1.tar.gz'...
Success: WordPress downloaded.

■ WordPress日本語版を指定してダウンロードする

WordPressの言語を指定してダウンロードするには、「--locale=〜〜」を引数に与えます。--locale に与えることのできる引数(language)は wp core language list で確認することができます。

$ wp core download --locale=ja
Downloading WordPress 4.1 (ja)...
Success: WordPress downloaded.

■ WordPress日本語版のバージョン4.0を指定してダウンロードする

本来は最新版のWordPressを使うことが望ましいのですが、よんどころのない事情で特定バージョンのWordPressを利用したい場合、バージョンを指定してダウンロードすることができます。

$ wp core download --locale=ja --version=4.0
Downloading WordPress 4.0 (ja)...
Success: WordPress downloaded.

ちなみに、二重ダウンロードはエラーになります。

$ wp core download
Error: WordPress files seem to already be present here.
$ wp core download --locale=ja --version=4.0
Error: WordPress files seem to already be present here.

一部のファイルやディレクトリが欠落していても二重ダウンロードはエラーとなります。

$ rm -f xmlrpc.php
$ wp core download --locale=ja --version=4.0
Error: WordPress files seem to already be present here.

しかし、そうは言っても強制再ダウンロードをしたいこともあるでしょう。そういうときは、引数に--forceをつけます。

$ wp core download --locale=ja --version=4.0 --force
Downloading WordPress 4.0 (ja)...
Using cached file '/home/nullpopopo/.wp-cli/cache/core/ja-4.0.tar.gz'...
Success: WordPress downloaded.

ちなみに、wp-load.phpの有無を見ているようです。

                while ( is_readable( $dir ) ) {
                        if ( file_exists( "$dir/wp-load.php" ) ) {
                                return $dir;
                        }
//以下略
$ rm -f wp-load.php
$ wp core download --locale=ja --version=4.0
Downloading WordPress 4.0 (ja)...
Using cached file '/home/nullpopopo/.wp-cli/cache/core/ja-4.0.tar.gz'...
Success: WordPress downloaded.

それではここで、最古のWordPressダウンロードにチャレンジしてみましょう。過去にリリースされたWordPressのバージョン一覧は、こちらで確認しました。

$ wp core download --version=1.2.1 --path=${HOME}/tmp/
Success: WordPress downloaded.
$ cat wp-includes/version.php | grep ^\$wp_version
$wp_version = '1.2.1';

それでは最古のWordPressからアップデートを確認してみましょう。

$ wp core check-update
Error: WP-CLI needs WordPress 3.5.2 or later to work properly. The version currently installed is 1.2.1.
Try running `wp core download --force`.
$ wp core check-update --force
Error: WP-CLI needs WordPress 3.5.2 or later to work properly. The version currently installed is 1.2.1.
Try running `wp core download --force`.

wp-cliは、WordPress 3.5.2 より過去のバージョンはダウンロードはできるものの、サポートしていません。--forceをつけてもだめでした。それでは、WordPress 3.5.2をダウンロードしてからアップデートしてみましょう。

$ wp core download --version=3.5.2
Downloading WordPress 3.5.2 (en_US)...
Success: WordPress downloaded.

しかし、wp-config.phpがないとアップデートできません。--forceをつけてもだめでした。

$ wp core update
Error: wp-config.php not found.
Either create one manually or use `wp core config`.
$ wp core update --force
Error: wp-config.php not found.
Either create one manually or use `wp core config`.

エラーメッセージにあるように、手動でwp-config.phpを書くか、wp core configコマンドでwp-config.phpを生成しないといけません。というわけで、wp core configでwp-config.phpを生成してからアップデートしましょう。

$ wp core config --dbname=wpdb0001 --dbuser=user0001 --dbpass=********
Success: Generated wp-config.php file.
$ wp core update
Downloading update from http://downloads.wordpress.org/release/wordpress-4.1-new-bundled.zip...
Unpacking the update...
Success: WordPress updated successfully.

コマンドラインからできること、確認できることは意外と多いことがわかりました。ね、簡単でしょう?でわ〜♪