在 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相關技術文章。