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 で強制再インストールすることで解決できます。

お気軽にご相談ください

お見積りへ お問い合わせへ