style.css 开头那段注释是主题的“身份证”,我自己的就写错了三处

作者: admin 分类: wordpress主题制作教程 发布时间: 2026-11-06 18:25

WordPress 是怎么“认出”主题的

你把一个文件夹扔进 wp-content/themes/,WordPress 凭什么知道它是个主题,而不是一堆随便放的 PHP 文件?

不是看文件夹名。

是看 style.css 开头的那段注释。只要能正确解析出 Theme Name,它才承认“这是一个主题”,并把它列进后台的“外观 → 主题”里。

所以那段注释的地位,相当于主题的身份证——写错了,主题在后台根本不显示,你还以为是文件放错了位置。

那段注释长什么样

标准写法是这样:

/*
Theme Name: 草根站长笔记
Theme URI: http://www.caogenbj.com/
Author: 你的名字
Author URI: http://www.caogenbj.com/
Description: 一句话介绍这个主题
Version: 1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: caogenbj
Tags: blog, custom-colors
*/

逐个说:

字段 作用 必填?
Theme Name 主题名,后台显示的就是它 必填
Theme URI 主题主页地址 可选
Author 作者名 可选
Author URI 作者主页 可选
Description 主题描述 可选
Version 版本号,升级时用 可选
License 授权协议 可选(但公开主题必须有)
Text Domain 翻译用的“域名”,配合 __() 做多语言 可选(但强烈建议)
Tags 标签,公开主题在目录里分类用 可选

我自己的主题,这三个地方都写错了

讲完标准,说点难听的——caogenbj 的 style.css,我打开一看,有四个问题。

问题一:文件开头有个 BOM

BOM 是啥?一个藏在文件最前面的“看不见的字符”,编码是 EF BB BF。它不显示,但真实存在。

它怎么来的?通常是 Windows 记事本或某些编辑器“另存为 UTF-8”时自动加的。

危害是什么?PHP 输出时会把这三个字节原样吐出去,导致页面开头多出一点空白。绝大多数情况下看不出来,但有两种情况会翻车:

  • XML 输出:比如站点地图(sitemap),XML 规定第一行必须是 <?xml,前面多三个字节,解析就失败;
  • 重定向:如果页面输出之前已经有内容,再调 header() 就会报“headers already sent”。

我这次排查站点地图打不开,最后发现根子之一就是这类看不见的空白。

怎么去掉:用 VS Code 打开文件,右下角能看到编码,点一下,选“通过编码保存 → UTF-8”,注意是 UTF-8,不是 UTF-8 with BOM。或者用 Notepad++ 的“编码 → 转为 UTF-8 无 BOM 编码”。

问题二:Author URI 少了一个斜杠

原文写的是:

Author URI: http:/www.caogenbj.com

看清楚了吗?http:/ 只有一个斜杠,正确应该是 http://(两个)。这个错不影响主题运行,但点过去是坏链接。属于“打字打快了”的典型。

问题三:没有 Text Domain

Text Domain 是干什么的?简单说,它是“翻译的命名空间”。

当你想让主题支持多语言(比如以后出个英文版),代码里会写 __( '阅读更多', 'caogenbj' ),第二个参数就是 Text Domain。WordPress 靠它去对应的翻译文件里找译文。

没有它,以后想做翻译就得回头补,而且补的时候要改一堆代码。一开始就写上,成本为零。

问题四:Description 里有错别字

原文是“草根笔记网站主题是一款自适用的主题,最求极简和实用”。

“自适用”应该是“自适应”,“最求”应该是“追求”。这个不影响功能,但它是主题的“门面”,别人(包括你自己以后)打开后台会看到。顺手改掉。

正确的写法(直接抄)

/*
Theme Name: 草根站长笔记
Theme URI: http://www.caogenbj.com/
Author: 草根站长笔记
Author URI: http://www.caogenbj.com/
Description: 一个草根站长的笔记,记录 WordPress 建站、SEO 与生活小知识。
Version: 1.3
License: GNU General Public License v2 or later
Text Domain: caogenbj
*/

注意几件事:

  • Theme Name 别用引号包起来(我原来写的是 Author: "草根笔记",引号会一起被当成名字的一部分);
  • 链接一定要是完整的 http://;
  • Text Domain 的惯例是跟主题目录名一致(caogenbj);
  • 注释块用 /* 开头、*/ 结尾,中间每行一个字段,冒号后面空一格。

一个快速自检的方法

改完不用凭感觉。去后台“外观 → 主题”,看你的主题卡片:

  • 能正常显示、有名字、有截图 → 身份证没问题;
  • 完全不显示,或者显示成“Broken theme” → 多半是 Theme Name 写错、格式不对,或者文件有 BOM。

如果主题在后台显示正常,但前台白屏,那问题就不在身份证,往下查模板或 PHP 报错。

小结

一句话记住:style.css 开头那段注释是主题的身份证,Theme Name 必填,格式不能错,文件不能带 BOM。

下一篇,我们把前面六篇的东西合起来,拿 caogenbj 这个真实主题整个拆一遍——看它的文件结构能读出什么。

本系列导航

相关文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Powered by 草根站长笔记 © 2015-2026 草根站长笔记 Inc.版权所有,禁止转载