Изображения в медиа-библиотеке внезапно исчезли
У меня есть блог на WordPress, и всё работало нормально, но однажды внезапно все изображения на сайте исчезли..
Я вижу, что изображения физически находятся в wp-content/uploads/ в соответствующих директориях (по месяцам и годам), но ничего не отображается в медиа-библиотеке
Я также заметил, что все страницы и записи были переведены в черновики. Я опубликовал их заново, но по-прежнему не могу получить доступ к изображениям в медиа-библиотеке..
В настройках/медиа/
Я проверил опцию
Организовать загрузки по папкам, основанным на месяце и годе
но не вижу опции для указания пути к папке загрузок..
Надеюсь, кто-нибудь поможет определить ошибку и исправить её..
Заранее спасибо

Описанные вами две проблемы могут быть связаны. Вложения (изображения) хранятся как записи в базе данных (поэтому заголовок, подпись и другие данные могут быть связаны с физическим файлом изображения). Именно эту запись вы видите в медиабиблиотеке.
Обычно post_status
для вложений имеет значение inherit
. Однако если post_status
установлен как draft
, запись больше не будет отображаться в медиабиблиотеке, даже если физический файл остаётся на месте, а заголовок и подпись по-прежнему хранятся в базе данных.
Скорее всего, вредоносный код или некорректно работающий плагин изменил все ваши post_status
на draft
. Чтобы проверить это, откройте PHP Admin и проверьте столбец post_status
в таблице _posts
вашей базы данных. Если изображений не слишком много, вы можете вручную изменить post_status
, чтобы записи снова появились в медиабиблиотеке (попробуйте хотя бы с одним, чтобы убедиться, что это решает проблему). В противном случае придётся выполнить SQL-запрос для обновления таблицы.

Если вы давно не обновляли WordPress, у вас всё равно не должно было быть возможности изменить папку загрузки через админку. Эта функция была удалена в версии 3.5, если я не ошибаюсь.
Сначала сделайте резервную копию всего (вашей установки WordPress, особенно всего содержимого в wp-content
, и вашей базы данных). Теперь что вы можете сделать:
Проверьте ваш wp-config.php
Найдите строку вида
define( 'UPLOADS', 'wp-content\path );
. Это единственный способ изменить директорию медиафайлов в новых версиях WordPress.Если вы видите такой код, попробуйте удалить его из
wp-config.php
.
Установите последнюю версию WordPress
- Скачайте zip-архив с WordPress.org.
- Скопируйте архив в директорию вашего WordPress.
- Перенесите
wp-config.php
в другое место. - Удалите всё в директории WordPress, кроме папки
wp-content
. - Разархивируйте скачанный файл. Вы увидите новую папку
wordpress
. Скопируйте всё оттуда в оригинальную директорию WordPress. - Верните ваш
wp-config.php
на место.
Попросите хостинг откатить ваш сайт до предыдущего состояния
Это крайняя мера. Просто спросите у хостинга, могут ли они откатить ваш сайт до момента, когда у вас ещё не было проблем с доступом к изображениям.
Что бы вы ни решили делать, вы всегда можете восстановить резервные копии, если что-то пойдёт не так.
Удачи!

Хочу поделиться решением, которое помогло мне, когда изображения в медиабиблиотеке не отображались. Я мог видеть названия файлов и нажимать кнопку редактирования, но вместо изображения видел только маленький синий квадрат, хотя файлы физически присутствовали на сервере. Решение, которое сработало в моем случае — установка плагина для перегенерации миниатюр и последующее их обновление. После этого все изображения снова стали отображаться в медиабиблиотеке.
Не знаю, является ли это вашей проблемой, так как в моем случае изображения не были установлены в статус черновика, но решил поделиться на случай, если кто-то столкнется с подобной ситуацией и найдет это решение полезным.

Со мной происходило то же самое, это было вызвано некоторыми установленными плагинами. Я удалил все недавно добавленные плагины, после чего всё заработало нормально.
Если всё ещё не работает, добавьте эту строку: define( 'UPLOADS', 'wp-content/uploads' );
в конец файла wp-config.php
.
