WordPress 添加自定义页面模板文件

主题的页面模板

我们在编写 WordPress 模板的时候,对于【页面】类型的 post_type,可以用 page-{page_slug}.php 这样的方式来编写页面模板文件。

也就是说,如果我们在后台创建了一个别名为 about 的页面,然后我们又在模板文件夹里面创建了一个 page-about.php,那么这个页面就将自动使用这个页面进行渲染。

具体的模板层级路由规则参见这篇文档的 Page 一节:

https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post

其中,对于用哪个模板来渲染页面,最优先的规则是这条:

  1. custom template file – The page template assigned to the page. See get_page_templates().

后面才是上面说的 page-{slug}.php 的规则。

那么这个反映到后台的模板的话,就是这个样子,在页面的编辑块“页面属性”里面,可以指定页面的模板:

注意,这个规则是最优先的。

那么,问题来了,怎么我这里的后台没得选的啊?

这个是要我们自己添加的。

创建自定义的页面模板

找啊找啊,找了很久才找到这篇文档,真不简单。

https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/#creating-custom-page-templates-for-global-use

简要说一下,如果要创建一些通用的可供选择的页面模板,那么需要在模板文件里面添加 page_{template-name}.php 这样的文件:

注意前缀 page 后面必须跟的是下划线而不是横杠,这个是关键。

然后,到后台看一下,还是没有?!

再往下看,需要在这个模板文件前面加上注释,以表明这个页面模板的名称,下拉框中显示的就是这里的内容:

<?php /* Template Name: 牛逼的页面模板 */ ?>

ok,这下从后台的页面编辑页面就可以看得到这个模板的选项了!大家来搞吧!

延伸应用

有时候我们开发网站的时候,设计上可能会有一小群风格一致的页面,但是内容有不一致,我们如果分别对其编写页面模板文件,会有很大量的代码冗余,这个时候我们就可以创建这样一个模板类型,然后从后台数据库将其绑定,这样就可以让一个页面模板为动态指定的一些页面提供渲染。

另外,这个配置的字段是放在这个页面的 post_meta 里面的,关键字是:_wp_page_template

【完】


【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2015/06/wordpress-custom-page-template.html【WordPress 添加自定义页面模板文件】

发表评论

电子邮件地址不会被公开。 必填项已用*标注