2026年5月20日
2026年5月20日
WordPressのテーマが更新できない場合の解決方法
はじめに
WordPressのテーマ更新が失敗する主な原因は「パーミッションエラー」「一時フォルダの容量不足」「接続タイムアウト」です。管理画面からの更新が失敗する場合、WP-CLIやFTPを使った代替手段で解決できます。
症状・原因
- テーマ更新ボタンを押してもエラーになる
- 「パーミッションエラー」が表示される
- 更新中にタイムアウトが発生する
- 「書き込みできません」のエラーが表示される
解決手順
ステップ1:エラーメッセージを確認する
よくあるエラーメッセージと原因:
「Could not create directory」
→ wp-content/themes/ のパーミッションが不正
→ ディレクトリの所有者がサーバーと異なる
「Installation failed: Download failed」
→ WordPressサーバーからZIPをダウンロードできない
→ ファイアウォール・DNS・SSL証明書の問題
「Could not copy file」
→ ディスク容量不足
→ 一時フォルダ (/tmp) が満杯
「Fatal error during update」
→ PHP実行タイムアウト(max_execution_time)
→ メモリ不足(memory_limit)
ステップ2:パーミッションを修正する
# wp-content/themes/ のパーミッションを確認
ls -la wp-content/themes/
# ディレクトリのパーミッションを修正
chmod 755 wp-content/themes/
chmod 755 wp-content/themes/theme-to-update/
# ファイルのパーミッションを修正
find wp-content/themes/theme-to-update -type f -exec chmod 644 {} \;
find wp-content/themes/theme-to-update -type d -exec chmod 755 {} \;
# 所有者を確認・修正(共有サーバーの場合は管理者に依頼)
ls -la wp-content/
# www-data や nginx など、Webサーバーの実行ユーザーであること
ステップ3:WP-CLIでテーマを更新する
# 更新可能なテーマを確認
wp theme list --update=available --format=table
# 特定のテーマを更新
wp theme update theme-slug
# すべてのテーマを一括更新
wp theme update --all
# 更新後のバージョンを確認
wp theme get theme-slug --fields=name,version,update_version --format=table
# 更新に失敗した場合、強制再インストール
wp theme install theme-slug --force
ステップ4:FTPで手動更新する
# 1. 現在のテーマをバックアップ
cp -r wp-content/themes/theme-name wp-content/themes/theme-name-backup-$(date +%Y%m%d)
# 2. 新バージョンのZIPをWordPress.orgからダウンロード
wp theme install theme-name --force
# または公式サイトからZIPをダウンロードしてFTPでアップロード
# 3. FTPでアップロードする場合:
# → wp-content/themes/theme-name/ の中身を新バージョンで上書き
# → style.css のバージョン番号が変わっていることを確認
# 4. 更新後の確認
wp theme get theme-name --format=json | python3 -m json.tool
ステップ5:PHP設定を調整して再試行する
// wp-config.php に追加(タイムアウト・メモリ対策)
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
@ini_set('max_execution_time', '300');
@ini_set('memory_limit', '256M');
# 一時ディレクトリの空き容量を確認
df -h /tmp
wp eval "echo sys_get_temp_dir() . PHP_EOL;"
# WordPress の一時フォルダを変更(wp-config.php)
# define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp/');
mkdir -p wp-content/temp
chmod 755 wp-content/temp
ステップ6:更新後の確認
# テーマが正常に更新されたか確認
wp theme list --format=table
# テーマの詳細情報
wp theme get theme-name --format=json
# 更新後にレイアウト崩れがないか確認
wp eval "echo home_url() . PHP_EOL;"
# キャッシュをクリア
wp cache flush
wp transient delete --all
# パーマリンクをリセット
wp rewrite flush --hard
注意事項
- テーマ更新前に必ずバックアップを取ってください。更新でカスタマイズが消えることがあります(子テーマを使っていれば問題ありません)
- 有料テーマはWordPress.orgではなく購入元サイトから最新ZIPを入手してください
- 更新後に画面が壊れた場合は、バックアップから旧バージョンを復元してください
まとめ
テーマ更新失敗の多くはパーミッションエラーです。chmod 755 でディレクトリを書き込み可能にし、wp theme update theme-slug または wp theme install theme-slug --force で強制再インストールすることで解決できます。