了解模板层次结构

时间:2015-04-13 作者:Snowcrash

我有一个模板叫做News.

当我转到仪表板并编辑名为News 其网址为news.html 我可以看到它使用此模板(即在页面属性>模板部分)。

但是,如果我随后更新模板名称(即page-news.php) 大概是NewsTest 我看到WordPress已经更新了页面属性>模板部分中使用的模板。

下面是另一个更具体的例子:

如果我随后将slug编辑为newsaaa 和模板名称Newsbbb 它仍然显示在页面属性>模板部分。

我一直在努力Template Hierarchy 但我仍然有点困惑WordPress如何确切地知道它应该为该页面使用哪个文件。

有人能解释一下吗?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您需要查看如何在wp_postmeta 桌子每个页面都链接到它使用的特定模板,并保存在meta键下_wp_page_template. 您可以去看看自己的安装db结构的外观以及页面模板的保存方式

Wordpress不使用页面段塞或页面名称,而是使用页面id来创建与分配给它的页面模板的关系。此外,Wordpress不使用模板名称来创建与页面的关系,而是使用页面模板文件名。对于默认模板,page.php, 它只保存为default 而不是文件名

因此,您可以将页面slug和模板名称重命名为任何您喜欢的名称,并且仍然保持特定页面和它使用的模板之间的关系。

示例:

enter image description here

SO网友:Sebastien

已定义模板名称inside 文件,如下所示:

<?php
/*
Template Name: My Custom Page
*/
本页将告诉您所有内容:https://codex.wordpress.org/Page_Templates

结束

相关推荐

get all page templates

我正在一个单页WordPress网站上工作。这是我第一次尝试这个。我在第五个版本上取得了不同程度的成功。我正在启动一个新版本,我删除了主题文件夹中除标题之外的所有内容。php索引。php,函数。php,页脚。php、页面模板和样式。css当我在wp\\U Posteta中查看我的数据库时,我可以看到其中有几个页面分配了模板。我以前看过这段代码,所以我第一次尝试它,看看我能得到什么。在我的索引中。php文件。我有一个简单的标准循环。您可以看到,就在\\u post()之后,我尝试了get\\u post\\