先说缓存。现在稍微像样点的网站,基本都上了缓存插件或者服务器端的缓存,比如Memcached、Redis之类的。你提交文章,后台写入的是数据库,但前台页面读的是缓存文件,旧缓存没更新,新文章自然就看不到。这种情况最典型的表现就是文章链接直接访问能看到,但列表页、首页就是不显示。处理办法很简单,后台找到缓存设置,全部清理一遍,服务器端的缓存也要清,有些CDN的缓存也得刷新。放心,缓存清了不会把网站弄坏,顶多第一次加载慢几秒。
再一个特别容易踩的坑,就是发布时间。很多编辑器自带定时发布功能,默认的发布时间并不是你提交那一刻,有时候时间戳是乱的,尤其你从Word文档复制粘贴内容时,有些编辑器能识别文档里的时间属性。这就导致文章状态其实是「未来发布」或「定时发布」,前台当然不显示。去文章列表里看状态,如果显示已计划或者排期,点进去把发布时间改成当前时间,重新提交一下就好了。
还有一个隐蔽的问题,有些模板对文章的分类或标签有要求。比如你设了某个分类是「私密」的,或者某个文章格式模板只调用特定分类,那你新写的文章即使发布了,前台也过滤掉了。这个排查起来比较恼火,因为后台一切显示正常。你可以试试把文章换到默认分类,或者随手新建一个测试分类再放进去,看看前台有没有动静。
权限这块也值得看一眼,虽然不常见但也遇到过。后台如果有多个管理员或者编辑账号,有些角色的权限设置不允许直接「发布」,只能「提交审阅」。文章提交后状态其实是被锁定的,得有审核权限的人再操作一次。这个只要看文章状态是不是已发布就能判断,如果是待审或者草稿,那你得找管理员放行。
再往下就是数据库层面的问题。网站运行时间长了,数据表可能有碎片或者索引出问题,导致新写入的记录没有被正常读取。这个用后台的数据库修复工具跑一遍就行,不用懂技术,点一下的事。如果不敢动数据库,那就用phpMyAdmin或者宝塔面板的数据库管理,找到对应的文章表,点优化表,效果一样。

还有主题和插件的兼容性问题。刚更新完主题版本或者启用了某个新插件后出现这种情况,大概率是插件拦截了文章查询,或者主题的循环代码写死了只显示某个ID范围内的文章。这种排查需要临时把所有插件禁用,看看前台能不能显示,如果显示了,再一个个启用来找凶手。如果是主题问题,那就得看主题更新日志了,或者联系作者。
哦对,还有一个特别低级但很多人都踩过的坑,你访问的前台地址和后台地址不是一个域名。比如后台用的是临时域名或者IP,前台用正式域名,这俩连的可能不是同一个数据库。你后台一顿操作猛如虎,其实跟前台没关系。去数据库配置文件里看一眼,确认连接的是不是同一个。
最后想起来一个,URL伪静态的问题。有些环境下伪静态规则失效,导致文章页生成不了对应地址。这个跟服务器配置有关,Apache的.htaccess文件丢了或者Nginx的rewrite规则出错,都会导致文章访问404或者直接回跳到首页。这种情况后台看起来一切正常,文章也在列表里,但你点开链接是打不开的,那基本就是伪静态问题,重新保存一下固定链接设置就好。
如果以上这些你都查了一遍还没解决,那就不太妙了,可能是代码层面有改动冲突,比如某个钩子函数挂了,导致保存文章时数据没完整写入。这种就得看日志了,后台的错误日志和服务器错误日志都翻出来看看,找到具体报错信息再对症下药。
其实做网站没有不碰坑的,这种问题基本所有站长都遇到过。关键别一上来就慌,按照上面说的排查顺序,从最可能的原因找到最不可能的原因,大多数情况半小时内能解决。你要是实在排查不出来,也可以把问题描述发到站长论坛里,附上你的PHP版本、CMS版本信息,热心人还是多的,很快就能帮你定位。记住,别人遇到过的坑大概率你能在这篇文章或者类似内容里找到解法。