从 WordPress 3.4 开始,可以将主题的页面模板(Page Template)放在该主题文件夹下面的一个子文件夹内。对于象我这号建了一堆页面模板的人来说真是福音啊。
对于主题部分,WordPress 3.4 除了增加了一个可以实时预览的主题定制工具外,还引入了一个新的 API,即用于主题(theme)的 WP_Theme
(via)。不过 API 是给开发人员用的,咱就不多介绍了。得益于新的处理方式的引入(除了上面的 API 之外还有 2 个常用的函数 wp_get_themes()
和 wp_get_theme()
,使得针对主题的操作更加迅速,而且占用的内存也较少,同时还支持持久性缓存。
回到我们的主题,接着继续说说将页面模板放到主题文件夹下面的一个子文件夹中有什么需要注意的问题。
首先,我们还可以像原来那样子直接放在主题文件夹里,而为了方便管理,也可以建个子文件夹。对这个子文件夹的名字没有特别要求,但是只支持一层目录。所以页面模板可以是 /a-page-template.php
,也可以是 /myTemplates/a-page-template.php
,但不能是 /hello/myTemplates/a-page-template.php
。
其次,子主题(Child themes)还可以像原来那样覆盖这些模板 —— 只需要在同样的目录结构下建一个同名的文件,就会覆盖掉父主题中的那个文件。或者举个例子就是,如果主题 child-theme 是基于 father-theme 制作的一个子主题,则如果存在下面的文件,
/wp-content/themes/child-theme//myTemplates/a-page-template.php
WordPress 使用 child-theme 主题时就会用上面这个文件,而不使用父主题中的这个同名的文件
/wp-content/themes/father-theme//myTemplates/a-page-template.php
作为模板。
最后提醒大家注意几件事情:
1、只能用一层子目录!
2、将一个页面模板改名 —— 包括将其移到一个子文件夹中 —— 会使得当前正在使用该模板的页面自动改为使用默认页面模板。所以做更改的时候要特别注意,别忘了在更改后重新修改页面为想要的模板。
3、新的主题处理方式,不支持下面形式的模板名称声明,
/* Template Name: MyCustomTemplate */
正确的应该是有换行:
/* Template Name: MyCustomTemplate */
拥有一打页面模板的筒子们,建个文件夹收纳那些模板吧 :D©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/page-templates-in-subdirectories-in-wordpress-3-4/>。转载请保留此信息及相应链接。
不感冒啊。
现在不玩WP了。在看DX
还没打算升级的飘过