阅读提示
本文约 674 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
本文约 674 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:英文页点链接跳中文 404
多语言站 404 复杂在:某页只有中文版,英文用户访问 /en/xxx 应友好处理(回退默认语或提示”暂无此语言”),而非生硬 404 或跳错。
原理分析:前缀与回退
URL 带语言前缀时,若该语言无对应译文,应:①回退到默认语言同页(带提示);或②返回 404 但用本语言 404 模板。粗暴”跳默认语”可能让 Google 误判。正确是”同源无译文→404 本语模板 + 建议其他语言”。
保姆级实操
404 模板按语言:
add_action('template_redirect', function(){
if (is_404()) {
$lang = pll_current_language();
// 显示本语言 404 并推荐其他语言链接
include get_stylesheet_directory()."/404-$lang.php"; exit;
}
});
对”有原文无译文”的 URL,可 301 回退默认语并提示。
常见坑
- 无译文强跳默认语,Google 当软 404 或链错。
- 404 模板单语,英文显中文。
- 案例:某站英文访问无译文件跳中文 404,改为英文 404 + 推荐链接后体验好且合规。
- 语言前缀错拼,全 404。
- 回退链成环,死循环。
总结
判断标准:无译文→本语 404 模板+推荐,或规范回退。行动清单:本语 404 → 推荐链接 → 规范回退 → 防环 → 验。详见多语言站点的 301 重定向规划。
觉得有用?点个赞支持一下
