您现在的位置是:首页 > 网站制作 > WordpressWordpress
WordPress函数:load_theme_textdomain()(载入本地化语言文件)
杰帅2023-06-26【Wordpress】人已围观
简介WordPress 做一个多语言网站,或者让我们的主题支持多种语言,那么就可以使用load_theme_textdomain()函数来定义主题的语言路径,只要将语言放到该目录下面且命名正确,就可以生效。
WordPress 做一个多语言网站,或者让我们的主题支持多种语言,那么就可以使用load_theme_textdomain()函数来定义主题的语言路径,只要将语言放到该目录下面且命名正确,就可以生效。
描述
加载翻译后的主题文件语言包文件
用法
<?php load_theme_textdomain( $domain, $path ) ?>
参数
- $domain(字符串)(必需)用以检索被翻译字符串的唯一标识符
- 默认值: None
- $path(未知)(可选)语言包 .mo 文件所在的目录(没有结尾的斜线)
- 默认值:false
返回值
(布尔)如果 textdomain 可以正常加载,返回 TRUE ;反之返回 FALSE
实例
load_theme_textdomain() 必须在 after_setup_theme 动作钩子后调用。
在主题的functions.php中加入以下代码:
add_action('after_setup_theme', 'wpdocs_theme_setup');
/**
* Load translations for wpdocs_theme
*/
function wpdocs_theme_setup(){
load_theme_textdomain('wpdocs_theme', get_template_directory() . '/languages');
}
以上例子,指明主题的语言目录位于该主题的 languages 文件夹。
需要注意的是,WordPress主题语言包不像插件语言包,如果你将主题语言包命名为my_theme-zh_CN.mo ,它是没办法使用的。正确的命名方式是根据本地语言设置命名来命名,比如 zh_CN.mo
如果主题页面中提供语言切换的功能,可通过http://youdomain/?lan=zh-CN的形式切换语言,则需要在functions.php中加入:
// 必须在 load_theme_textdomain() 的前面调用
add_filter( 'locale', 'my_theme_localized' );
function my_theme_localized($locale) {
if (isset($_GET['lan'])) {
return $_GET['lan'];
}
return $locale;
}
load_theme_textdomain( 'my_theme', get_template_directory(). '/languages' );
由于加载语言包会让你的网页加载速度变慢,如果你不想加载语言包,在functions.php中加入以下代码即可:
add_filter( 'locale', 'wpjam_locale' );
function wpjam_locale($locale) {
$locale = ( is_admin() ) ? $locale : 'en_US';
return $locale;
}
让插件调用语言包需在插件的主文件中加入以下代码:
add_action('plugins_loaded', 'plugin_languages_init');
function plugin_languages_init(){
load_plugin_textdomain( 'plugin', dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
需要注意的是,和主题语言包不同,插件语言包的一般命名包含两大部分:插件主文件名+语言及国别简码。如index-zh_CN.po和zh_CN.mo
源文件
load_theme_textdomain() 位于 wp-includes/l10n.php
官方文档:http://codex.wordpress.org/Function_Reference/load_theme_textdomain
Tags:load_theme_textdomain() wordpress函数 wordpress教程
很赞哦! ()
相关文章
随机图文
-
wordpress 上传的图片不显示的问题 base64,data:image/gif
-
wordpress发布文章HTML标签被自动过滤掉该如何处理?
wordpress发布文章时很多html标签都会自动过滤掉,造成了文章中无法添加<style></style><script></script>等标签。那么该如何如何处理呢? 解决方法一: 将wp-includes文件夹下 -
WordPress 页面模板(Page Template)下拉列表不显示的原因及解决方法
WordPress 的自定义页面模板是一个非常强大好用的功能,使用它新建一些静态页面(Page),添加上一些数据调用的函数,再在网页上做一个导航连接到对应的页面就可以实现很多自定义的功 -
wp_reset_postdata 和 wp_reset_query 的作用与区别
什么时候使用wp_reset_query,什么时候用wp_reset_postdata?