WordPressのバージョンを4.4.2に wp-cli を使ってアップデートした後、プラグインとテーマも wp-cli を使ってアップデートしようとするとwp-cliコマンドでエラーになって更新できない現象は発生した。その原因調査と対策まとめてみた。
現象
まずは、WordPressコアを wp core update コマンドで更新した。これは無事に完了できた。
[hoge]$ wp core update
Updating to version 4.4.2 (ja)...
https://downloads.wordpress.org/release/ja/wordpress-4.4.2.zip から更新をダウン ロードしています...
更新を展開しています…
更新が必要な翻訳が一部あります。更新が終わるまでしばらくお持ちください。
WordPress (ja) の翻訳を更新して います…https://downloads.wordpress.org/translation/core/4.4.2/ja.zip から翻訳ファイルをダウンロードしています…
更新を展開しています…
最新のバージョンをインストールしています…
翻訳が正常に更新されました。
略
そのあと、プラグインを更新しようと wp plugin update -all コマンドを叩くとエラーが・・・
[hoge]$wp plugin update -all PHP Fatal error: Class 'WP_Widget' not found in /var/www/html/wandering/wp-content/plugins/akismet/class.akismet-widget.php on line 5
あれ?akismetプラグインでエラーということで、いろいろプラグイン側に対して調べたりしたが結局、WordPressのコアバージョンとwp-cliのバージョンの互換性が合ってなかったぽい。wp-cliのバージョンも最新にしたら直った。
対策 = WP-CLIのアップデート
いろいろやってみてWP-CLIとWordPressのバージョンの互換性の違いだと判明。そりゃWP-CLIでWordPressコアを操作するのだからWordPressのコアをアップデートしたらWP-CLIのバージョンのアップデートするのは当然か!
WP-CLIをアップデートしようと思ったけど、方法が調べてもさくっと出てこない。今回は既存のWP-CLIをアンインストールしてから最新をインストールでとりあえず対応した。
※コマンドがあることわかりました。コマンドでアップデートしたい場合は WP-CLI自身をアップデートするコマンド wp cli update を参考にしてください。
WP-CLI 公式のインストール方法に従ってインストールしていたからこれに従って再度インストールした。このとき既に /usr/local/bin/wp に実行ファイルがあるから一旦削除。上書きでもよかったんだが・・・
これで無事にプラグインやテーマも WP-CLIを使って更新完了!
以上