本文介绍如何在 wordpress 主页等非文章正文区域(如特色图像)中,将默认的 webp 格式缩略图统一替换为 jpg 格式,通过挂钩 `wp_get_attachment_image_src` 实现全局、安全、高效的扩展名替换。
在 WordPress 开发中,当站点启用 WebP 图片支持(例如通过插件或服务器配置),the_post_thumbnail() 或 wp_get_attachment_image_src() 返回的图片 URL 默认包含 .webp 扩展名。虽然使用 the_content 过滤器可轻松替换文章正文中 标签的 src 属性(如你已在单篇文章中实现),但首页循环中手动调用 wp_get_attachment_image_src() 获取的缩略图 URL 并不受 the_content
影响——因为它绕过了内容过滤流程,直接返回原始附件 URL。
因此,正确且推荐的做法是:挂钩 wp_get_attachment_image_src 过滤器,该过滤器在每次生成附件图像 URL(包括缩略图、中等尺寸、大图等所有尺寸)时触发,且其参数 $image 是一个包含 [url, width, height] 的数组,其中 $image[0] 即为待处理的图片 URL 字符串。
✅ 正确代码如下(建议添加至主题的 functions.php 或专用功能插件中):
? 关键说明与注意事项:
$image[0] = preg_replace('/\.webp(?=\?|$)/i', '.jpg', $image[0]);? 额外提示:若你还希望在
综上,替换 the_content 为 wp_get_attachment_image_src 是解决特色图像 WebP 转 JPG 的标准、轻量且可维护的方案——一次配置,全站生效。