在 WordPress 6.7 版本中,引入了更嚴(yán)格的翻譯加載機(jī)制,本是為了提升系統(tǒng)的可靠性,但不幸的是,這一改動(dòng)帶來(lái)了一個(gè) bug,導(dǎo)致 load_theme_textdomain
無(wú)法正常加載主題的翻譯文件。根據(jù)官方消息,預(yù)計(jì)將在 6.7.1 版本中修復(fù)該問(wèn)題。對(duì)于已升級(jí)到 6.7 且依賴翻譯功能的用戶,目前可以選擇降級(jí)至 6.6.2 版本作為暫時(shí)的解決方案。
下面,我們也可以提供一個(gè)臨時(shí)的代碼修復(fù)方案,方便開發(fā)者在不降級(jí)的情況下使用翻譯文件。只需將代碼中的文本域更換為你自己的即可。
原始代碼:
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 版本后
待官方修復(fù)上線 6.7.1 版本后,可以將這段代碼刪除,并恢復(fù)為以下簡(jiǎn)化代碼:
add_action('after_setup_theme', function(){
load_theme_textdomain('modular_theme', get_template_directory() . '/languages');
});
新主題官方微信公眾號(hào)
掃碼關(guān)注新主題(XinTheme)官方公眾號(hào),本站動(dòng)態(tài)早知道。
發(fā)布本站最新動(dòng)態(tài)(新主題發(fā)布、主題更新)和WordPress相關(guān)技術(shù)文章。