My workflow is sometimes the following:
- Delete many images from the media library at once (named for example,
01.jpg
,02.jpg
,03.jpg
…). - Re-upload a series of images with the same file names (
01.jpg
,02.jpg
,03.jpg
…).
The media library retains and display shows the old images as thumbnails and previews, even though they are deleted.
Obviously this problem is avoidable by adding images with distinct file names, but I wondered if there were some better way that works regardless of naming convention. Or something else that I’m completely missing?
Thanks.
But, that’s just why we have browser caching â to prevent the same image from loading everytime we call it again. The browser sees it as the same image.
You can make a little workaround by calling the image like this:
http://yoursite.com/images/01.jpg?v1 and http://yoursite.com/images/01.jpg?v2 – this would load the same image 2 times.
This is a browser cache issue, not a WordPress media library issue. The reason you see the old images in the media gallery is because you used the same file name and your browser is trying to save time and bandwidth by loading the versions it already has.
There are two ways to solve this problem.
Cache Busting
Add a query variable (
?v=5
) to the end of your image names as used on the front-end. This won’t affect the media gallery … but it will prevent people from seeing cached versions of old images on the front-end. For reference, this is the same method we use in WP core to force the browser to re-download updated JavaScript files.mod_expires
You can tell your server (Apache) to set a custom “expires” date and time for different images either based on the extension (all jpg or png files) or the filename, if you want to get really granular. This is more of an advanced trick, but you can use this to immediately flush everyone’s cache whenever you upload new images.
ExpiresByType
)Actually, it’s the cache issue. You can clear the browser cache to see changes. If your’re using any Cache plug-in in your WordPress site then also clear that.