WordPress函数get_site_url()偶尔失效问题排查求助
以下是可能导致get_site_url()生成的图片路径偶尔失效的原因及对应解决办法:
WordPress站点URL配置不一致
Local by Flywheel在站点暂停重启、域名调整后,可能导致WordPress后台「设置→常规」里的「WordPress地址(URL)」和「站点地址(URL)」出现缓存或不匹配的情况。get_site_url()直接读取这两个配置值,一旦和实际访问的http://sarasota-soccer-club.local/不符,就会生成错误路径。
解决:进入WP后台检查两个URL,确保和本地地址完全一致(包括是否带www、末尾斜杠),保存设置即可。本地DNS/hosts缓存冲突
macOS的DNS缓存或Local自动配置的hosts文件偶尔会出现冲突,导致get_site_url()解析出的域名无法被NGINX正确识别。
解决:- 终端执行
sudo dscacheutil -flushcache刷新DNS缓存; - 在Local里暂停站点再重启,触发重新配置hosts和NGINX规则。
- 终端执行
WordPress缓存未及时更新
若开启了WP缓存插件(如WP Rocket)或Local自带的缓存功能,get_site_url()的返回值可能被缓存,当站点URL变动后缓存没同步更新,就会出现路径错误。
解决:- 清空WP后台的缓存;
- 关闭或清空Local站点设置里的「CDN/缓存」。
NGINX server_name匹配问题
Local生成的NGINX配置中,server_name可能未正确匹配你的本地域名,或存在多域名规则冲突,导致偶尔无法解析get_site_url()生成的域名。
解决:- 进入Local站点的「高级」选项,打开
nginx.conf; - 确认
server_name字段为sarasota-soccer-club.local,无多余干扰域名; - 保存配置后重启站点。
- 进入Local站点的「高级」选项,打开
PHPStorm文件同步延迟
PHPStorm的文件同步如果有延迟,修改后的代码可能没及时同步到Local站点目录,导致旧的缓存代码仍在运行,出现路径问题。
解决:- 开启PHPStorm的「自动同步」(设置→外观与行为→系统设置→同步→勾选自动同步);
- 修改代码后手动右键站点目录选择「同步」,或在Local里确认文件已更新。
内容的提问来源于stack exchange,提问作者Labanino

