欢迎光临
我们一直在努力

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

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

224743

下面,我们也可以提供一个临时的代码修复方案,方便开发者在不降级的情况下使用翻译文件。只需将代码中的文本域更换为你自己的即可。

原始代码:

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');
});
赞(0)
未经允许不得转载:WP之家 » WordPress 6.7:load_theme_textdomain 无法加载主题翻译的解决方案

登录

找回密码

注册