WP-CLIでWordPressを安全にバージョンアップする
弊社では複数のWordPressサイトを運用していますが、WordPressのコアファイルはgit管理外にしています(カスタムテーマのみgit管理)。
管理画面からもコア更新自体は可能ですが、git管理下のファイルと不整合が起きないよう、コアの更新は管理画面を使わずVPSにSSHログインしてWP-CLIで行う運用にしています。
2026年5月20日にWordPress 7.0「Armstrong」がリリースされたのをきっかけに、社内勉強会でWP-CLIによる安全なバージョンアップ手順を整理したので、その内容を共有します。
目次
WordPressとは
オープンソースのCMSで、世界のWebサイトの約43%で使われており、ブログからコーポレートサイトまで幅広く採用されています。PHPで動作し、プラグインやテーマで機能を拡張できます。
WordPressのバージョンは「メジャー.マイナー.パッチ」の形式(例: 6.5.3)で管理されます。セキュリティ修正を含むパッチリリースは頻繁に行われるため常に最新を維持することが重要で、古いバージョンは攻撃の標的になりやすいという特性があります。
git管理とWP-CLI運用ルール
弊社のWordPressサイトは、カスタムテーマのみをgitで管理しており、WPコア本体はgit管理外です。
管理画面からコアを更新すると、その変更はgitの管理外で行われるため、次回デプロイ時に意図しない上書きや差分の見落としにつながりかねません。そのため、
- 管理画面(ダッシュボード)からのコア更新は使わない
- VPSにSSHログインし、WP-CLIでコアファイルを更新する
というルールで運用しています。
WP-CLIとは
WordPress専用のコマンドラインツールです。
管理画面を使わずに、コア・プラグイン・テーマの更新やデータベース操作などをSSH経由で実行できます。
インストール
# ダウンロード
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 実行権限を付与
chmod +x wp-cli.phar
# パスの通った場所に移動
mv wp-cli.phar /usr/local/bin/wp
# 確認
wp --version --allow-root補足:
以降のコマンド例には `–allow-root` フラグを付けています。
これはWP-CLIをroot権限で実行する場合に必要なフラグです。
root以外の実行ユーザーで運用している場合は不要なので、環境に合わせて付け外ししてください。
更新前の確認事項
バージョンアップ前に、最低限以下をチェックします。
| 確認項目 | 内容 |
| PHPバージョン | 新WPが要求するPHPバージョンをサーバーが満たしているか |
| プラグインの互換性 | 新WPバージョンに対応したプラグインバージョンがあるか |
| テーマの互換性 | カスタムテーマが新バージョンで動作するか |
| ディスク容量 | バックアップファイルを置けるだけの空き容量があるか |
| DBバックアップ | 更新前に必ず取得する(本番は必須) |
PHPバージョンの確認:
php -vWordPressの必要PHPバージョンは公式サイトで確認します。
以下、`sample-wp` というサイト名を例に、実際の作業フローを紹介します。パスは環境に合わせて読み替えてください。
/var/www/sample-wp.git/sample-wp/www/html/本番に適用する前に、ステージング(検証用)環境で必ず動作確認してください。
以降のコマンド例は本番相当のパスのみ示していますが、実際は検証環境に対して同じコマンドを先に実行し、問題がないことを確認してから本番に適用する2段階の運用にしています。
バージョンアップの実作業
1. 現在のバージョンを確認
wp core version --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root
// 結果
6.8.12. 更新可能なバージョンを確認
wp core check-update --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root
// 結果
+---------+-------------+----------------------------------------------------------------+
| version | update_type | package_url |
+---------+-------------+----------------------------------------------------------------+
| 6.8.5 | minor | https://downloads.wordpress.org/release/ja/wordpress-6.8.5.zip |
| 7.0 | major | https://downloads.wordpress.org/release/ja/wordpress-7.0.zip |
+---------+-------------+----------------------------------------------------------------+マイナー更新とメジャー更新の両方が同時に表示されることがあります。
今回のように7.0系へのメジャー更新が控えている場合は、いきなり飛びつかず慎重に判断するのがポイントです(詳細は後述)。
3. DBバックアップ
公開ディレクトリの外にバックアップ用ディレクトリを用意し、更新前に必ずエクスポートします(本番は必須)。
mkdir -p /var/backups/wordpress
wp db export /var/backups/wordpress/sample_$(date +%Y%m%d).sql \
--path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root4. WPコアの更新
先にステージング環境で更新・動作確認してから、本番に適用するのが鉄則です。
wp core update --version=6.8.5 --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root更新後にバージョンを確認:
wp core version --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root
// 結果
6.8.55. プラグインの更新
WP-CLIならプラグインも一斉更新できます。
# 更新可能なプラグインの一覧確認
wp plugin list --update=available --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root
# 一斉更新
wp plugin update --all --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-root
# 個別更新
wp plugin update プラグイン名 --path=/var/www/sample-wp.git/sample-wp/www/html/ --allow-rootメジャーバージョンアップについて
`wp core check-update` でメジャーバージョンが表示されても、すぐに飛びつくのではなく慎重に対応すべきです。
今回はまず6.8.5に更新して安定稼働を確認し、後日改めて最新の7.0まで上げました。
その際、以下の点は必ず押さえています。
- プラグイン・テーマの互換性を事前に確認する
- 必ずステージング環境で先に試して全機能を確認する
- プラグインが対応してから上げるのが安全
シェルスクリプト化
毎回コマンドを打つ手間を省くため、一連の作業をシェルスクリプトにまとめました。
VPS上の任意の場所(例: `/opt/scripts/wp-update-sample.sh`)に配置し、`/usr/local/bin/` にシンボリックリンクを貼ると `wp-update-sample` のように呼び出せます。
`SITES` 配列にはステージング・本番それぞれのパスを書けます。
まずステージングのパスだけを書いて実行し、問題がなければ本番のパスに書き換えて再実行する、という使い方を想定しています。
#!/bin/bash
BACKUP_DIR=/var/backups/wordpress
mkdir -p "$BACKUP_DIR"
SITES=(
/var/www/sample-wp.git/sample-wp/www/html
)
update_site() {
local path=$1
local sitename=$(basename "$(dirname "$(dirname "$path")")")
echo "----------------------------------------"
echo "更新: $path"
echo "----------------------------------------"
if [ ! -d "$path" ]; then
echo "スキップ: ディレクトリが存在しません"
return
fi
echo "DBバックアップ中..."
wp db export "$BACKUP_DIR/${sitename}_$(date +%Y%m%d).sql" --path="$path" --allow-root
wp core update --path="$path" --allow-root
wp plugin update --all --path="$path" --allow-root
echo ""
}
echo "===== サイト更新 ====="
for site in "${SITES[@]}"; do
update_site "$site"
done
echo "===== 完了 ====="シンボリックリンクの作成:
chmod +x /opt/scripts/wp-update-sample.sh
ln -s /opt/scripts/wp-update-sample.sh /usr/local/bin/wp-update-sample使い方:
wp-update-sampleまとめ
- WPコアをgit管理外にしている場合、管理画面からの更新は使わずWP-CLI+SSHで運用するとgit管理との不整合を避けられる
- 更新前はプラグイン/テーマの互換性・PHPバージョン・ディスク容量・DBバックアップを必ずチェックする
- ステージング環境で先に更新・動作確認してから本番に適用するのが鉄則
- メジャーバージョンアップは`wp core check-update`で表示されてもすぐ飛びつかず、プラグイン対応状況を見てから判断する
- 定型作業はシェルスクリプト化しておくと、ヒューマンエラーを減らしつつ運用の再現性を上げられる
このカテゴリの最新記事
2023.07.12
2023.12.20
2025.09.10
2025.10.15