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