“这个功能,换个主题还要不要?”
就这么简单。因为换主题时,functions.php 里的东西会全部丢掉,插件的不会。
| 功能 | 为什么是插件 |
|---|---|
| 文章浏览计数 | 数据要长期保留,换主题不能丢 |
| SEO 标签 | 跟内容相关,不是外观 |
| 评论防垃圾 | 业务规则,跟主题无关 |
| 站点地图 | 给搜索引擎的,不是给人看的 |
| 图片压缩 | 媒体处理,跟界面无关 |
| 备份 | 运维功能 |
| 功能 | 为什么是主题 |
|---|---|
| 菜单位置注册 | 跟页面结构强相关 |
| 侧栏注册 | 跟布局强相关 |
| 图片尺寸 | 跟显示尺寸强相关 |
| 分页函数 | 跟列表页结构相关 |
| 面包屑 | 跟页面层级相关 |
有些功能两边都能放,比如“相关文章”。判断方法:
它的 functions.php 里有:
description()(生成 meta 描述)——该是插件或独立的 SEO 文件;整体上“能用”,但边界有点糊。这也是很多国产主题的通病:什么都塞 functions.php。
因为换主题是常事。你把评论过滤写在主题里,换主题后垃圾评论立刻回来,你还得再去新主题里加一遍。
写成插件,换主题完全不受影响。
判断标准不是为了“规范”,是为了“以后省事”。
一句话记住:换主题还要用的,写插件;跟外观布局绑定的,写主题。
下一篇讲 add_theme_support——主题的“能力声明”。