WordPress主题支不支持中文,跟主题名里写不写「中文」基本没关系,跟作者写代码时有没有把每一句文字用国际化函数包起来,关系巨大。所以真正该看的不是名字,是主题的style.css头部和languages目录。官方主题目录里的主题免费提供,语言包由WordPress自动下载。
对做出海站的人来说,这件事拖的是时间。主题装上去前台一堆英文,你以为主题不支持中文,换一个还这样,半天就过去了。做英文独立站,主题这一层的要求就两条:后台看得懂,前台该中文的地方是中文,剩下的精力放在内容和流量上。
- 结论:中文支持看主题有没有做i18n、有没有对应语言包,不看主题名。
- 官方规则:主题文字必须用国际化函数包裹,硬编码的纯文本翻译不了。
- 后台路径:设置 > 常规 > 站点语言,选简体中文,WordPress自动下载语言包。
- 要避开的误区:主题的.mo文件名只能有语言代码,写成my_theme-de_DE.mo不生效。
这篇只讲中文这一层:怎么判断一个主题真支持中文,装完改哪几项设置,前台还有英文按什么顺序回查。WordPress这一层的基础,在WordPress那篇。
本文目录
主题名里带「中文」不等于中文支持,先分清i18n和语言包
后台搜「wordpress中文主题」,能搜出一堆名字里带「中文」的。名字是作者自己起的,跟主题能不能显示中文是两回事。一个主题能不能被翻译成中文,看它有没有按WordPress的规则做国际化,再看有没有人给它做了简体中文的语言包。
国际化(i18n)和本地化(l10n)各是什么
国际化是主题开发的时候,把主题里所有要显示给用户的文字,用一套函数包起来,让这些文字能被翻译成别的语言。官方管这个叫i18n,因为internationalization这个词首尾字母中间有18个字母。
本地化是另一件事,是把已经包好的文字,实际翻译成某一种语言和地区,比如翻成简体中文。这个缩写是l10n。i18n是主题作者做的,l10n是翻译的人做的,两边都到位,你装上去才能看到中文。
WordPress内置了翻译系统,用户不用改主题源码就能换语言,主题更新也能照常跟。这也是向官方主题目录提交主题时的一个要求。
翻译存在.po和.mo里,WordPress实际读的是.mo
翻译文件有两种,.po是人能打开看的,.mo是机器读的。WordPress实际用的是.mo,.po留着给人看和改。
WordPress按站点语言在两个位置找主题翻译。一个是主题自己的文件夹,路径是wp-content/themes/your-theme/{domain-path}/{locale}.mo。另一个是wp-content/languages/themes/{textdomain}-{locale}.mo。两个位置的文件名规则不一样,这个后面讲。
官方目录主题不用自己加载翻译,WordPress自动去wp-content/languages取
托管在官方主题目录里的主题,作者不用自己写加载翻译的代码。WordPress会自动检查wp-content/languages目录,从translate.wordpress.org把对应语言下载下来。
你装的是目录里的主题,中文语言包这一步基本不用手动碰。
免费主题怎么筛,5条标准在5条标准筛免费主题那篇。
为什么有的主题装上就是中文,有的怎么设都留英文
差别不在设置,在主题代码。主题作者的写法决定了这个主题能不能被翻译。设置只能决定用哪种语言,决定不了主题里的文字有没有被包起来。

文字必须用国际化函数包裹,硬编码的纯文本翻不了
主题里写死一句「Read more」,没有用国际化函数包,这句就是纯文本。语言包里有对应的中文也套不上去,除非直接改主题代码。官方要求主题里的文字要被翻译,必须用国际化函数包起来,不能硬编码。
这也是为什么有的主题怎么设都留英文。不是语言包没装,是那句话根本不在翻译的范围里。你把站点语言切成简体中文,后台菜单变了,主题前台那句写死的英文不会跟着变。
文本域要和主题slug一致,translate.wordpress.org的翻译才对得上
文本域是主题告诉WordPress「这批文字归我管」的标识。官方要求文本域始终和主题slug一致。托管在WordPress.org的主题,文本域必须和主题URL里的slug一样,translate.wordpress.org上的翻译才能正常工作。
文本域的写法也有规矩:全小写,多词用连字符,不能用下划线。写成下划线,解析工具认不出来,翻译就对不上。写成变量也不行,工具分不清是哪个文本域。
官方目录把Translation ready列成一个筛选特性
官方主题目录的筛选里有「Translation ready」这一项。勾上它,筛出来的主题至少做了翻译准备。注意「至少」这两个字,做了准备不等于简体中文的翻译已经完整,装完还是要到前台看。
挑主题时怎么在官方目录里判断中文能不能用
判断分三层,从粗到细。先看目录里的标记,再看style.css头部的字段,最后看languages目录里的文件名。三层都过,这个主题的中文支持基本靠得住。

- 后台进「外观 > 主题 > Add New」,用关键词搜,或者用Translation ready特性筛。目录里的主题免费,和WordPress用的许可证兼容。装完启用,前台还是英文,回到第6节的顺序查语言文件。
- 打开主题的style.css,看头部注释里有没有Text Domain和Domain Path两个字段。文本域要全小写,多词用连字符,值和主题slug一致。官方要求翻译要生效,至少得定义Text Domain,值应该是主题slug。Domain Path不写,默认是/languages。字段缺失,换主题,别自己改源码。
- 看主题languages目录里的.mo文件名。主题语言文件只认语言代码,比如pt_BR.mo,带主题名的my_theme-de_DE.mo不生效。文件名不对,按规则改名,或者换主题。
三步里第二步最容易漏。演示图好看,不代表style.css头部的字段齐全。主题页面上能看到的截图,跟翻译能不能生效没有关系。
这三步查完还是拿不准,就先装上看前台。不满意删掉就行。注意删主题会连自定义一起删,这个后面FAQ里说。
装完之后,中文相关要改的几项设置
主题装好启用,中文这一层还有三件事要做。顺序别反,先设语言,再看前台,最后才决定这个主题留不留。
- 进「设置 > 常规 > 站点语言」,从列表里选简体中文,保存。WordPress可以在后台随时装语言包,选完它会自动下载,并把后台切成中文。保存后没变化,先看是不是多站点。多站点的语言是按每个博客在「设置 > 常规」里设的,整个网络的默认语言在「网络管理 > 设置」里设。
- 到前台逐页看。首页、文章页、分类页、搜索页、404页,看主题输出的文字是不是变成了中文。这一步是决定这个主题留不留的依据,不是后台变了就完事。
- 还有英文词条,去translate.wordpress.org选简体中文,对照着补翻译。翻译要经过翻译编辑批准才会进入WordPress,不是提交了马上生效。
想改主题里的文字,又不想动原主题,用子主题。建法在WordPress子主题创建那篇。主题对SEO的影响,在主题SEO优化影响那篇。
第2步看前台的时候,把浏览器窗口缩小到手机宽度再看一遍。主题在手机上的文字有时候是另一套,桌面中文了,手机还留着英文。
数字和限制:版本门槛、免费与命名规则
下面这张表是这件事里会实际卡住人的数字和规则。看一遍,能省掉大部分来回试的时间。
| 项目 | 数值 / 规则 |
|---|---|
| 官方主题目录主题数 | 8,768个 |
| 目录主题价格 | 免费提供 |
| 后台随时装语言包 | WordPress 4.1及以后 |
| 安装过程中自动装语言 | WordPress 4.0起 |
| 自动检查wp-content语言目录 | 4.6版起 |
| 主题.mo命名 | 只含语言代码,如pt_BR.mo;带文本域不生效 |
| load_theme_textdomain()调用时机 | 6.7起只能在init或更晚 |
真正会卡人的是最后两行。语言文件名写错、加载时机不对,中文都不会出现,页面上还不一定报错。
主题作者这一侧还有两个版本数字:load_theme_textdomain()是1.5.0版引入的,子主题用的load_child_theme_textdomain()是2.9.0版引入的。你不需要记这两个函数,但看主题代码或者跟作者沟通时会碰到。新版本里翻译不再立即加载,交给即时加载机制,所以调用得放在init或更晚。
装了中文主题还是英文?按这个顺序排查
前台还有英文,别急着重装主题。按下面五条,从文件名查到加载时机,一条一条排。
- .mo文件名带了主题名。主题语言文件只认语言代码,my_theme-de_DE.mo这种写法不生效。放主题文件夹用{locale}.mo,放wp-content/languages/themes用{text-domain}-{locale}.mo。
- 文本域用了下划线,或者写成了变量。文本域必须用连字符、全小写;写成变量,解析工具分不清是哪个文本域。
- 主题文字是硬编码的。纯文本不改代码翻不了,换多少个语言包都没用。
- 手工装语言文件,步骤错了或者语言指定错了。WordPress会回退到英语。还有一种情况:wp-config.php里写的语言代码没有对应的.mo和.po文件,页面不报错,但代码还是会用在language_attributes()里,看着像没生效。
- load_theme_textdomain()调用太早。新版本要求放在init或更晚,在这之前调用,加载失效。
这五条里,前三条是主题本身的问题,换主题比修主题快。后两条是环境或版本的问题,改配置能解决。
主题不兼容新版本怎么办,在主题不兼容新版本怎么办那篇。
费用:中文主题这一层要花多少钱
官方主题目录里的主题免费,语言包由WordPress自动下载。中文这一层不产生费用。
真正花钱的是主机、域名、插件这些,四笔账在主机域名插件主题四笔账那篇。免费主题和付费主题的区别,在免费主题和付费主题的区别那篇。
付费主题值不值,先看它有没有Text Domain、有没有语言文件,再看价格和授权。中文支持不靠花钱买,靠主题作者有没有按规则做。
用AI查主题的中文支持,哪几步能交出去、哪几步必须自己做
AI在这件事上能省的是翻文件和比对的时间。它只能按你贴给它的内容说话,没贴的字段它不会知道,也不会替你去后台点。
能交给AI的有四步:
- 把候选主题的style.css头部贴给它,让它查Text Domain和Domain Path在不在、值是什么、文本域是否全小写、用连字符、和slug一致。
- 把languages目录的文件名列表贴给它,让它按{locale}.mo规则判断哪些符合、哪些不符合。
- 让它把前台出现的英文词条整理成待翻译清单,拿去translate.wordpress.org对照。
- 让它起草装完后的中文设置检查清单,逐项列后台路径。
下面三条提示词是本文给的示例,不是官方模板,可以直接复制:
- 「下面是一个WordPress主题style.css的头部注释。请只根据注释内容,指出Text Domain和Domain Path两个字段是否存在、值是什么,以及文本域是否符合全小写、用连字符、与主题slug一致的规则。不要推测注释里没有的信息。」
- 「这是一个WordPress主题languages文件夹里的文件名列表。请按官方规则判断:哪些文件名符合主题语言文件命名要求,哪些不符合,并说明每个不符合的文件名错在哪。规则是主题.mo文件必须严格按locale命名,只包含语言代码。」
- 「我在WordPress后台『设置 > 常规 > 站点语言』里选了简体中文,但主题前台仍有英文。请列出按官方文档可以依次检查的项目:主题是否用国际化函数包裹文字、主题是否声明Text Domain、语言文件放在哪个目录、文件名是否符合规则。只列检查项,不要给结论。」
必须自己做的有三个动作。一是在后台「外观 > 主题 > Add New」把主题装上、启用。二是在「设置 > 常规 > 站点语言」选简体中文,保存后到前台看,据此决定这个主题留不留。三是打开主题文件夹的languages目录,看.mo文件名是不是只有语言代码。
候选主题的style.css头部、语言文件名、前台英文词条,整理成一张对照单,这类整理和按规则比对可以交给猎者出海的AI Agent,它出改稿单,装和改还是你自己动手。
常见问题
WordPress中文主题是不是装了就不用管语言?
不是。主题只负责把文字用国际化函数包起来,语言包由WordPress按站点语言下载。装完还要在「设置 > 常规 > 站点语言」选简体中文,再到前台看。
官方主题目录里的主题要钱吗?
免费。目录里的主题由主题作者设计开发,和WordPress用的许可证兼容,不收费。付费主题不在这个目录里。
主题.mo文件为什么不能带主题名?
主题语言文件只认语言代码,写成my_theme-de_DE.mo不生效。放主题文件夹用{locale}.mo,放wp-content/languages/themes用{text-domain}-{locale}.mo。
后台选了简体中文,前台还有英文是什么原因?
三种可能:主题文字是硬编码的、没声明Text Domain或文本域和slug不一致、语言文件名不对。按第6节的顺序查。
多站点的语言在哪里设?
每个博客在「设置 > 常规」的Site language里设。整个网络的默认语言在「网络管理 > 设置」的Default Language里设。
主题删掉后自定义还在吗?
不在。删除主题会连同文件、文件夹和做过的自定义一起删掉,删之前先备份。
中文主题这件事,判断在装之前,设置在装之后,回查按文件名、文本域、加载时机这个顺序。主题换来换去解决不了硬编码的问题,选的时候多看一眼style.css,比装完再折腾省时间。

发表评论