2026年5月20日

2026年5月20日

WordPressのメディアライブラリが開かない場合の解決方法

はじめに

投稿にアイキャッチ画像を設定しようとしたらメディアライブラリが真っ白になる、ライブラリを開いても画像が一枚も表示されない、ファイルをアップロードしようとすると「HTTPエラー」が出る。メディアライブラリの問題は様々な原因が重なることがあります。

症状・原因

メディアライブラリが開かない主な原因:

  • JavaScriptエラー:プラグインやテーマのJSがメディアモーダルの初期化を妨げる
  • パーマリンク設定の問題:Ajaxリクエストがうまくルーティングされない
  • PHPメモリ不足:画像リストの生成時にメモリ制限に達する
  • ファイルアップロード制限upload_max_filesizepost_max_sizeが小さい
  • ディレクトリ権限wp-content/uploads/への書き込み権限がない

解決手順

ステップ1:ブラウザコンソールとネットワークを確認する

1. F12コンソール でJSエラーを確認

2. ネットワーク タブ → メディアライブラリを開く操作をして/wp-admin/admin-ajax.phpへのリクエストを確認

3. レスポンスが-1や空の場合はnonce・権限問題

ステップ2:パーマリンクを再保存する

wp rewrite flush --hard

管理画面の 設定パーマリンク設定 → 「変更を保存」でも同様です。

ステップ3:プラグインを無効化して確認する

# 全プラグインを無効化
wp plugin deactivate --all

# メディアライブラリが開けたら、一つずつ有効化して原因を特定
wp plugin activate akismet
wp plugin activate woocommerce

ステップ4:ファイルアップロード制限を増やす

// wp-config.php
define('WP_MEMORY_LIMIT', '256M');
; php.ini または .htaccess (php_value で設定)
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
memory_limit = 256M
# .htaccess
php_value upload_max_filesize 64M
php_value post_max_size 128M
php_value memory_limit 256M

ステップ5:アップロードディレクトリの権限を確認する

# wp-content/uploads/ の権限を確認
ls -la wp-content/

# 755に修正(ディレクトリ)
chmod 755 wp-content/uploads/
chmod -R 755 wp-content/uploads/

# 所有者をWebサーバーユーザーに変更(Apache/Nginx)
chown -R www-data:www-data wp-content/uploads/

ステップ6:HTTPエラーでアップロードできない場合

// functions.php — JPEG品質を下げて大きな画像のメモリ消費を減らす
add_filter('jpeg_quality', function() { return 82; });

// 大きな画像の自動リサイズを設定
add_filter('big_image_size_threshold', function($threshold) {
    return 2560;  // 2560px以上は自動縮小
});
// wp-config.php — 画像処理にGDライブラリを使用(Imagickよりメモリ効率が良い場合)
define('WP_IMAGE_EDITOR_ENGINE', 'WP_Image_Editor_GD');

ステップ7:メディアライブラリのデータを修復する

# 画像のサムネイルを再生成
wp media regenerate --yes

# アタッチメントのメタデータを更新
wp eval '
$attachments = get_posts(["post_type" => "attachment", "numberposts" => -1]);
foreach ($attachments as $attachment) {
    wp_update_attachment_metadata(
        $attachment->ID,
        wp_generate_attachment_metadata($attachment->ID, get_attached_file($attachment->ID))
    );
}
echo "Done.\n";
'

注意事項

  • アップロードディレクトリのパーミッションを777に設定するのはセキュリティリスクです。755または775を使用してください。
  • 画像リサイズにImagickを使用している場合、サーバーメモリが少ないとエラーになりやすいです。GDライブラリへの切り替えを検討してください。

まとめ

メディアライブラリが開かない場合はコンソールのJSエラー確認、パーマリンク再保存、プラグイン切り分けの順に試します。アップロードエラーはupload_max_filesizememory_limitの増加、wp-content/uploads/の権限確認で解決するケースが多いです。関連記事:PHPのメモリ制限を増やす方法ファイルパーミッションの正しい設定

お気軽にご相談ください

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