多站点下子站上传图片显示成功,前台却是裂图,文件其实在 sites/2 目录下,页面引用的还是主站路径。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
$u = wp_upload_dir(); echo $u['baseurl'] . '/2026/11/a.jpg'; echo wp_get_attachment_url($id);
直接拼接上传目录或把路径写死,没走上传目录函数,多站点下真实路径带站点编号,拼出来的地址自然指错。这一点先确认清楚,后面就不用反复试。
碰到「多站点附件目录」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
具体做法是,改用上传目录函数分别取 baseurl 和 path;附件地址统一交给附件 URL 函数来输出;切到对应子站前台验证图片能否正常加载显示。
改完照着核一遍,子站图片能正常显示,切换站点后路径也自动跟着变。
