switch_to_blog(1); $attachments = get_posts(['post_type' => 'attachment', 'posts_per_page' => 20]); restore_current_blog();
在子站编辑文章点“添加媒体”,媒体库只显示 3 张图,主站 800 张附件一张都不出现,直接粘贴 URL 又能显示。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,多站点的 uploads 默认按 sites/{blog_id} 隔离,附件记录也只存在子站的 posts 表。媒体库查询绑定当前 blog_id,不会去读主站附件。
「子站媒体库跨站」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
处理上按这个顺序:确认附件的 blog_id 归属;需要共用时 switch_to_blog 查主站附件;或改用共享媒体库方案 统一附件归属。
改完只确认一件事:子站媒体库能看到主站图片并插入文章,图片地址可访问。
