WordPress中add_action('wp_head')无效,图片预加载代码不生效
解决思路
- 先确认标签是否输出:打开浏览器开发者工具(F12),查看页面
<head>区域的源代码,确认<link rel="preload">标签是否存在。如果不存在,说明代码未被执行,需排查钩子或代码逻辑;如果存在,继续下一步。 - 修正资源类型与路径问题:
- 你的代码中
type="image/webp",但实际资源是.jpeg格式,类型不匹配会导致浏览器忽略预加载请求,需改为type="image/jpeg"。 - 相对路径
/wp-content/uploads/...可能在子目录站点下失效,建议用WordPress内置函数生成绝对路径,比如:
再把$image_url = wp_get_upload_dir()['baseurl'] . '/2021/12/blog-bg-1536x907.jpeg';href设为这个变量。
- 你的代码中
- 检查钩子执行时机:尝试调整
add_action的优先级,比如设为1(默认是10),确保代码在其他头部输出前执行;也可以换用wp_print_head_scripts钩子替代wp_head测试。 - 查看浏览器控制台与网络面板:
- 打开浏览器控制台的网络标签,筛选“Preload”类型,查看该资源是否有预加载请求。
- 查看控制台的警告信息,比如资源不存在、类型不匹配等提示,这些是调试关键。
- 排查缓存:清空站点缓存(如各类缓存插件的缓存)和浏览器缓存,避免旧页面内容干扰测试。
- 检查Code Snippets配置:确认代码的运行范围是“仅在前端”,且未被其他规则冲突覆盖。
内容的提问来源于stack exchange,提问作者AJT
相关产品推荐
相关产品推荐

