WordPress主题之前有分享过很多,而本次分享的Tint主题为了优化模板的加载,改写了默认的模板加载机制。目前可以看到Tint主题发布版的文件夹非常整洁,没有各种category.php single.php page.php等默认模板文件。仅有的四个文件分别是functions.php index.php style.css screenshot.png,其中functions.php是WordPress主题的加载入口核心,index.php目前仅为占位文件,无实质内容,style.css主要通过注释头表明主题的基本信息,真正的样式不位于style.css中,screenshot.png是主题预览图片。
除了文件之外,Tint主题目录下直属assets/core/dash三个文件夹
其中assets文件夹为静态资源如图片,JS/CSS,字体等存放位置,
ash主要存放一些与后台相关的如主题设置选项等函数文件
而core文件夹则包含了Tint主题的核心功能函数
在core文件夹之下按照类型又包含api/classes/functions/languages/library/modules/templates/viewModels几个文件夹
路由划分优化
除了传统的首页/文章/分类/标签/页面等模板路由,Tint通过自定义rewrite规则引入了多个自定义路由,所以你的服务器必须开启伪静态支持,并且WordPress的固定链接设置也必须自定义成postname或post_id的模式。添加的自定义路由有:
- /management/xxx – 站点管理中心路由,包括站点统计,文章管理,商品管理,订单管理,会员管理,优惠码管理多个子路由 (该路由仅管理员可用)
- /me/xxx – 个人管理中心路由,包括个人资料设置,通知查看,消息查看,个人文章管理,个人草稿管理,个人收藏管理,个人积分,会员状态与管理,个人订单管理若干子路由 (该路由仅针对当前登录用户)
- /u/{id} – 作者中心路由,包括作者资料,作者的文章,评论,收藏,粉丝以及关注几个子路由 (该路由对所有用户可见,每位用户都有一个不同的专属路由链接)
它们功能类型如下:
- api – REST API控制器及相关工具
- classess – PHP自定义类文件存放处
- functions – 各种功能函数,其中的文件按照功能划分,避免了将所有功能函数写入functions.php单文件造成文件过大且不便修改的问题
- languages – 国际化语言包
- library – PHP外部开源库
- modules – 各种页面模板的小模块
- templates – 页面模板
- viewModels – 将MVVM设计模式引入到WordPress主题开发中,各种数据如文章的查询等在此VM中完成,避免在模板中写入过多的逻辑,同时可以无缝接入缓存控制