给付费分类加了权限判断,未登录用户打开归档看到暂无内容,HTTP 状态还是 200,搜索引擎照样收录了这个空页面。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,权限判断只过滤了查询结果,没有在模板层改状态码,页面照常渲染成空归档。返回 200 的空页面会被当成正常内容收录。
「分类权限控制」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。报错里带路径的,先去看那个路径在不在、权限对不对。
if (!current_user_can("read_private_posts")) {
global $wp_query; $wp_query->set_404(); status_header(404); nocache_headers();
}
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
具体做法是,无权限时直接返回 404 或跳登录页;用状态头函数设置正确状态码;给这类归档加 noindex 避免半成品被收录。
最后用这个标准收尾,未登录访问返回 404,登录后同一地址正常显示文章。
