Как заставить WordPress показывать последние версии изображений в медиа-библиотеке?
Мой рабочий процесс иногда выглядит следующим образом:
- Удаляю несколько изображений из медиа-библиотеки одновременно (названных, например,
01.jpg
,02.jpg
,03.jpg
...). - Повторно загружаю серию изображений с теми же именами файлов (
01.jpg
,02.jpg
,03.jpg
...).
Медиа-библиотека сохраняет и продолжает показывать старые изображения в виде миниатюр и превью, даже несмотря на то, что они удалены.
Очевидно, что этой проблемы можно избежать, добавляя изображения с уникальными именами файлов, но я хотел узнать, есть ли какой-то лучший способ, который работает независимо от правил именования. Или, может быть, я что-то полностью упускаю?
Спасибо.

@t31os Спасибо за ответ. Я уверен, что это просто мой браузер кэширует изображения. Но (мне следовало уточнить) я не единственный пользователь. Я бы предпочёл не говорить своим пользователям обновлять страницу каждый раз, когда они что-то удаляют, или использовать неуклюжий способ с принудительным обновлением страницы после удаления изображения.
Но именно для этого и существует кэширование в браузере — чтобы предотвратить загрузку одного и того же изображения каждый раз, когда мы его вызываем. Браузер воспринимает его как одно и то же изображение.
Вы можете использовать небольшой обходной путь, вызывая изображение таким образом: http://yoursite.com/images/01.jpg?v1 и http://yoursite.com/images/01.jpg?v2 — это позволит загрузить одно и то же изображение дважды.

Да, на самом деле это тот самый трюк, который использует WP при постановке в очередь скриптов/стилей, когда вы указываете их версию: https://codex.wordpress.org/Function_Reference/wp_enqueue_script

Это проблема кеширования браузера, а не медиатеки WordPress. Причина, по которой вы видите старые изображения в галерее, заключается в том, что вы использовали то же имя файла, и ваш браузер пытается сэкономить время и трафик, загружая уже сохранённые версии.
Есть два способа решить эту проблему.
Cache Busting (обход кеша)
Добавьте query-переменную (?v=5
) в конец имён ваших изображений, используемых на фронтенде. Это не повлияет на медиатеку... но предотвратит показ устаревших версий изображений из кеша браузера. Для справки: этот же метод используется в ядре WordPress, чтобы заставить браузер перезагружать обновлённые JavaScript-файлы.
mod_expires
Вы можете настроить ваш сервер (Apache) для установки пользовательской даты и времени "истечения срока действия" (expires) для разных изображений — либо по расширению (все jpg или png файлы), либо по имени файла, если требуется детальная настройка. Это более продвинутый метод, но с его помощью можно мгновенно очистить кеш у всех пользователей при загрузке новых изображений.
- Как установить заголовок Expires в Apache (используя
ExpiresByType
) - Справочник по модулю Apache mod_expires

Добро пожаловать на wpse! Чем этот ответ отличается от ответа @EAMann? Похоже, что это точно такой же ответ, но с меньшим количеством информации. Если они действительно различаются, пожалуйста, рассмотрите возможность добавить больше деталей. В текущем виде это копия ответа @EAMann.
