有个客户反馈说有张前端图片显示效果不对,跟Elementor编辑器里面显示的不一样。

小迪分析后发现前端显示的图片跟上传的图片细节不一样,询问之下发现客户删掉了一张图,然后重新上传了一张同名图片,导致新旧2张图的网址一样。CDN以及浏览器等保留了旧图片缓存,网址一样的情况下会直接显示旧图片缓存,所以前端显示的图片不对。
避免显示旧缓存图方法
我们懂技术的人操作的话会把新图片名字改成不一样再上传,避免这个问题。可是客户不懂,那么多客户不可能每个都科普一遍。
有些人会加代码给新上传的图片URL添加时间戳后缀来区分旧图片,这样可以避免这个问题,也可以绕过WP图片查重,可是这样URL不好看,小迪是个完美主义者,接受不了。
所以小迪想了一个方法,当删除图片后,新上传一样名字的图片会自动给新图网址加上数字后缀区分旧图。
例如 https://www.diiamo.cn/a.jpg 变成 https://www.diiamo.cn/a-1.jpg,网址后缀加了“-1”。图片名字不变,这样美观,也方便客户通过名字区分上传的图片。
如果再次删除,再上传,网址变成https://www.diiamo.cn/a-2.jpg,以此类推。

平时上传图片不受影响,依旧使用WP默认的机制:同时上传多张同名字图片,后续图片网址后缀自动加上 -1,-2 之类后缀,图片名字保持原样不变。
添加下面代码到(子)主题的functions.php文件最下面,保存即可。也可以使用WPCode Pro,Perfmatters等插件添加代码。
代码只在后台加载,轻量速度快,性能好,超过30天的数据会被自动清理,避免体积膨胀。
还是喜欢手动改图片名字方式?
这个代码主要给客户网站用减少售后,自己网站的话重命名图片再上传就可以避免这个问题。
小迪不擅长起名字,每次给图片想不同名字就头大,所以我也添加这个代码,省心省事。

删除图片自动清理CloudFlare CDN缓存
ShortPixel之类图片压缩插件都有链接CloudFlare CDN功能,当图片重新压缩之类会自动清理CDN缓存。有使用CDN的话建议在插件链接下。
绝大部分缓存插件也有链接CloudFlare CDN功能,可是仅限于自动清理页面缓存,删除图片时并不会自动清理CDN缓存。Super Page Cache这个缓存插件,小迪向官方提了建议,希望支持删除图片时自动清理相应CF CDN缓存。官方客服回复说这个建议很好,她们研究下。
大家也可以向其它缓存插件作者提建议,支持删除图片时自动清理相应CF CDN缓存。或者自己使用AI为缓存插件开发这个功能,有很多现成插件代码可以参考。










