在 WordPress 6.7 版本中,引入了更严格的翻译加载机制,本是为了提升系统的可靠性,但不幸的是,这一改动带来了一个 bug,导致 load_theme_textdomain
无法正常加载主题的翻译文件。根据官方消息,预计将在 6.7.1 版本中修复该问题。对于已升级到 6.7 且依赖翻译功能的用户,目前可以选择降级至 6.6.2 版本作为暂时的解决方案。
下面,我们也可以提供一个临时的代码修复方案,方便开发者在不降级的情况下使用翻译文件。只需将代码中的文本域更换为你自己的即可。
原始代码:
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');
});
新主题官方微信公众号
扫码关注新主题(XinTheme)官方公众号,本站动态早知道。
发布本站最新动态(新主题发布、主题更新)和WordPress相关技术文章。