# WordPress 6.7：load_theme_textdomain 无法加载主题翻译的解决方案

- 原文链接：https://www.xintheme.com/wpjiaocheng/200122.html
- 发布日期：2024-11-14
- 更新时间：2024-11-14
- 作者：大胡子 | XinTheme
- 分类目录：WordPress教程
- 标签：load_theme_textdomain、WordPress 6.7

## 摘要

在 WordPress 6.7 版本中，引入了更严格的翻译加载机制，本是为了提升系统的可靠性，但不幸的是，这一改动带来了一个 bug，导致 load_theme...

## 正文

[在 WordPress 6.7 版本中，引入了更严格的翻译加载机制](https://www.xintheme.com/wpjiaocheng/200105.html)，本是为了提升系统的可靠性，但不幸的是，这一改动带来了一个 bug，导致 `load_theme_textdomain` 无法正常加载主题的翻译文件。根据官方消息，预计将在 6.7.1 版本中修复该问题。对于已升级到 6.7 且依赖翻译功能的用户，目前可以选择降级至 6.6.2 版本作为暂时的解决方案。

[![](https://www.xintheme.com/wp-content/uploads/2024/11/224743.jpg)](https://www.xintheme.com/wp-content/uploads/2024/11/224743.jpg)下面，我们也可以提供一个临时的代码修复方案，方便开发者在不降级的情况下使用翻译文件。只需将代码中的文本域更换为你自己的即可。

#### 原始代码：

```
load_theme_textdomain( 'modular_theme', get_template_directory() . '/languages' );
```

**或者**

```
add_action('after_setup_theme', function(){
    load_theme_textdomain( 'modular_theme', get_template_directory() . '/languages' );
});
```

#### 修改后的代码：

```
add_action('init', function() {
    global $l10n, $wp_textdomain_registry;
    $domain = 'modular_theme';
    $locale = get_locale();
    $wp_textdomain_registry->set($domain, $locale, get_template_directory() . '/languages');
    
    if (isset($l10n[$domain])) {
        unset($l10n[$domain]);
    }
    
    load_theme_textdomain($domain, get_template_directory() . '/languages');
});
```

#### 更新到 WordPress 6.7.1 版本后

待官方修复上线 6.7.1 版本后，可以将这段代码删除，并恢复为以下简化代码：

```
add_action('after_setup_theme', function(){
    load_theme_textdomain('modular_theme', get_template_directory() . '/languages');
});
```