You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress站点强制跳转至带语言后缀URL问题求助

WordPress 根域名自动跳转至对应语言后缀URL方案

一、插件实现方案

  • 直接用主流多语言插件就能解决,推荐Polylang或WPML:
    • 安装激活后,进入插件设置页面,找到「URL设置」或「语言切换」相关选项,开启「根域名访问自动跳转至用户首选语言」功能即可。
    • 这类插件会自动识别浏览器的Accept-Language请求头精准跳转,还能通过cookie记录用户之前的语言选择,比JS跳转更稳定,同时兼顾SEO需求。

二、自定义PHP代码实现

如果不想依赖插件,直接在主题的functions.php文件中添加以下代码:

function redirect_to_preferred_language() {
    // 跳过后台、登录页,以及已带语言后缀的URL,防止循环跳转
    if ( is_admin() || is_login_page() || strpos( $_SERVER['REQUEST_URI'], '/en/' ) !== false || strpos( $_SERVER['REQUEST_URI'], '/pt/' ) !== false ) {
        return;
    }

    // 获取浏览器发送的首选语言前缀(取前两位)
    $browser_lang = substr( $_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2 );
    $redirect_url = home_url();

    // 匹配对应语言后缀
    switch ( $browser_lang ) {
        case 'pt':
            $redirect_url .= '/pt';
            break;
        case 'en':
            $redirect_url .= '/en';
            break;
        default:
            // 默认跳转至英文,可根据需求修改为其他语言
            $redirect_url .= '/en';
            break;
    }

    // 301永久跳转,对SEO更友好
    wp_redirect( $redirect_url, 301 );
    exit;
}
add_action( 'template_redirect', 'redirect_to_preferred_language' );
  • 额外优化:如果之前用JS给用户设置过语言选择的cookie,可以在代码中添加优先读取cookie的逻辑,让跳转更贴合用户历史选择:
// 优先读取用户之前选择的语言cookie
if ( isset( $_COOKIE['user_preferred_lang'] ) ) {
    $browser_lang = $_COOKIE['user_preferred_lang'];
}

将这段代码插入到$browser_lang = substr(...)之前即可。

注意事项

  • 修改主题文件前,记得备份functions.php,或者使用子主题添加代码,避免主题更新后代码丢失。
  • 测试时建议清除浏览器缓存或使用隐身模式,确保看到真实的跳转效果。

内容的提问来源于stack exchange,提问作者Rodrigo Antunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:03:17