看到标题,估计大多数人都觉得很简单,就是用个英文主题就好了。用英文主题当然能基本实现后台中文,前端英文。但是,如果英文主题或者使用的插件有中文语言包呢?如果英文主题或使用的插件有中文语言包,在前端会出现中文内容,比如,WordPress 插件 WooCommerce 。又或者有人觉得这么麻烦干嘛,直接设置 WP 语言为英文即可。是的,如果后台不需要使用中文的情况下,直接设置 WP 默认语言为英文,前端主题使用英文主题即可。但是,如果想要如题所说,前端显示英文,后台显示中文,应该怎么样做才最好呢?
前些时候,我们在开发英文网站主题时就遇到这样一个问题,正如,可以把实现的过程分享一下。
首先,安装 WordPress 时设置站点语言为简体中文,已经安装好的,可以在后台 Setting 里找到对应的站点语言设置即可。
保存设置后,网站后台即为中文语言。
其次,找一个合适的英文主题,通过 外观 - 主题 - 安装主题 进行上传安装启用。
完成上面两个设置,基本上可以实现后台中文,前端英文显示。
等等!英文主题有中文语言包,前端显示为中文!!!别急,下面继续添加部分代码到主题 functions.php 文件里。
代码片断一:禁止前端加载中文语言包
add_filter('locale', function ( $locale ) { $locale = ( is_admin() ) ? $locale : 'en_US'; return $locale; });
将以上代码复制添加到 functions.php 里保存,即可基本完成了。
等等!还有问题呢。虽然禁止了加载中文语言包,但是,你会发现,英文单词换行,没有连接词呢。这是因为,css 里关于英文单词换行连接符的属性:hyphens 需要 html 里的 lang="en"。你查看源码会发现,虽然禁止了加载中文语言包,但是 html 里的 lang="zh-cn",css 样式不能完美的兼容英文。怎么办呢?
方法很简单,直接把 <html lang="zh-cn"> 换成 <html lang="en"> 即可。但是,大部分的主题头部代码用的都是这种写法:
>
怎么替换掉呢?放心,WP 官方已经提供了相应的过滤器。
代码片断二:更改主题模板默认语言属性
add_filter('language_attributes', function ($output, $doctype) { if( stripos($output, 'zh-CN') !== false ) { $output = str_replace("zh-CN", "en", $output); } return $output; }, 10, 2);
将以上代码复制添加到 functions.php 里保存即可。
到此,即可完美实现前端英文,后台中文了。
微信公众号『王牌客栈』
第一时间了解最新网络动态
扫码关注不迷路~