EL-Script

General IT knowledge base

Почему WordPress не загружает изображения: основные причины и способы исправления

Разбираемся, почему в WordPress не загружаются изображения, — от ограничений PHP и прав доступа до ошибок плагинов.

Коротко: не загружаются изображения WordPress: в большинстве случаев неполадка связана с ограничениями PHP (upload_max_filesize, post_max_size, memory_limit), некорректными правами на директорию wp-content/uploads или конфликтом плагинов. Начните диагностику с проверки медиабиблиотеки и консоли браузера, затем последовательно исключите типичные причины — от серверных настроек до правил безопасности.

С проблемой, когда WordPress не загружает изображения, сталкиваются многие владельцы сайтов: после нажатия кнопки загрузки вместо картинки появляется ошибка, белый экран или сообщение о нехватке памяти. Такая неисправность парализует работу с медиафайлами и может вызываться десятком разных причин — от банальных прав на папки до превышения лимитов хостинга.

Что понадобится

  • Доступ к панели администратора WordPress
  • FTP-клиент или файловый менеджер хостинга
  • Возможность проверить или изменить конфигурацию PHP (php.ini или панель управления хостингом)
  • Знание того, как включить режим отладки WordPress (WP_DEBUG)

Первичная диагностика: какую ошибку вы видите

При неудачной загрузке WordPress может показывать разные сообщения: HTTP-ошибка, белый экран или специфический текст вроде «Не удалось переместить файл в папку uploads». Чтобы сузить круг причин, важно понять точный HTTP-код и сообщение сервера.

Откройте консоль браузера (F12 → вкладка «Сеть»), повторите попытку загрузить изображение и найдите запрос к файлу wp-admin/async-upload.php. Код ответа 500 указывает на фатальную ошибку PHP, 413 — на превышение допустимого размера запроса, а 403 — на запрет доступа со стороны веб-сервера.

  • Код 500: проверьте журналы ошибок PHP, включите WP_DEBUG для вывода подробной ошибки.
  1. Перейдите в раздел Медиафайлы → Добавить новый.
  2. Нажмите F12 и перейдите на вкладку «Сеть» (Network).
  3. Загрузите изображение и дождитесь ошибки.
  4. Найдите строку async-upload.php в списке запросов и посмотрите статус ответа.
  5. При коде 500 активируйте режим отладки WordPress: добавьте в wp-config.php define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); и после воспроизведения ошибки изучите файл /wp-content/debug.log.

Важно: Не оставляйте WP_DEBUG включённым на рабочем сайте — после диагностики удалите строки или установите false.

Серверные ограничения PHP: размер, память и время

Наиболее частой причиной проблем с загрузкой изображений являются лимиты серверного PHP. Параметр upload_max_filesize определяет максимальный размер одного файла, post_max_size — общий размер данных одной формы, а memory_limit — объём оперативной памяти, доступный скрипту. Если размер картинки превышает любой из этих порогов, загрузка прерывается без внятного уведомления.

Текущие значения можно увидеть в панели WordPress: Инструменты → Здоровье сайта → вкладка «Инфо» → раздел «Сервер». Альтернативный способ — создать php-файл с функцией phpinfo(). Чтобы увеличить лимиты, отредактируйте php.ini, .htaccess или wp-config.php, если хостинг разрешает переопределять настройки.

  • upload_max_filesize = 64M
  • post_max_size = 64M
  • memory_limit = 256M
  • max_execution_time = 300
  1. Определите реальный размер загружаемой картинки.
  2. Сравните с текущим upload_max_filesize (в байтах). Если загружаете несколько файлов, сумма не должна превышать post_max_size.
  3. Для повышения лимитов добавьте в php.ini или .htaccess строки: php_value upload_max_filesize 64M; php_value post_max_size 64M; php_value memory_limit 256M.
  4. Если панель хостинга позволяет, измените там. После правки проверьте значения снова.

Важно: На некоторых общих хостингах глобальные лимиты установлены жёстко и не могут быть изменены через .htaccess — обратитесь к документации провайдера.

Права доступа к папке uploads и владелец файлов

WordPress записывает загруженные файлы в папку wp-content/uploads (если не переопределено). Для успешной записи веб-сервер должен иметь право на запись в эту директорию. Обычно достаточны права 0755 для каталога и 0644 для файлов, а владельцем выступает пользователь, от которого работает веб-сервер (например, www-data, apache или nobody).

  1. Подключитесь по FTP или через файловый менеджер хостинга.
  2. Перейдите в wp-content/uploads и проверьте права доступа: папка должна быть 755.
  3. Если текущие права иные, измените на 755 (рекурсивно для вложенных папок).
  4. Если загрузка по-прежнему не работает, временно установите 777 для тестирования (и сразу верните 755 после проверки).
  5. Проверьте, что владелец папки совпадает с владельцем процессов PHP — это особенно важно на VPS.

Важно: Права 777 создают угрозу безопасности, поэтому не оставляйте их дольше чем необходимо.

Конфликты плагинов и активной темы

Иногда виновниками становятся сторонние расширения. Плагины для сжатия графики, CDN, кеширования или безопасности могут вмешиваться в процесс загрузки, изменяя промежуточные данные или блокируя большие файлы. Активная тема тоже способна нарушить стандартное поведение WordPress.

  • Плагины оптимизации изображений (Smush, ShortPixel, Imagify).
  • Безопасные фаерволы (Wordfence, Sucuri).
  • Генераторы миниатюр и водяных знаков.
  1. Чтобы исключить конфликт, временно отключите все плагины через Плагины → Установленные (выделите все → Деактивировать).
  2. Переключитесь на стандартную тему Twenty Twenty-Four в разделе Внешний вид → Темы.
  3. Попробуйте загрузить изображение. Если всё работает — включайте плагины по одному, проверяя каждым, пока не найдёте причинный.
  4. Для безопасного тестирования используйте плагин Health Check & Troubleshooting, который изолирует сессию для администратора, не затрагивая посетителей.

Важно: Перед массовым отключением плагинов сделайте резервную копию базы данных.

Некорректный путь загрузки и временная папка

WordPress по умолчанию сохраняет медиафайлы в папку wp-content/uploads, но этот путь можно изменить в настройках. Неправильно указанная директория или несуществующая папка приведут к ошибке «Не удалось создать каталог». Кроме того, PHP использует временный каталог для приёма загружаемого файла перед финальным перемещением — если эта папка недоступна, операция сорвется на раннем этапе.

  1. Перейдите в Настройки → Медиафайлы и проверьте поле «Папка для сохранения файлов». Обычно оно пустое или содержит «wp-content/uploads».
AI-инструмент

Проверить ошибку WordPress

Введите ошибку WordPress, PHP, плагина, темы, REST API или кратко опишите проблему сайта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *