页面模板是一种特定类型的模板文件,可应用于特定页面或页面组。
注意:从 4.7 开始,页面模板支持所有帖子类型。要了解如何将页面模板设置为特定的帖子类型,请参阅下面的示例。
由于页面模板是一种特定类型的模板文件,因此页面模板的一些区别特征如下:
页面模板的作用
页面模板在页面上显示网站的动态内容,如文章、新闻更新、日历事件、媒体文件等。您可以决定以特定方式显示主页,这与网站的其余部分。或者,您可能希望显示链接到页面部分的特色图像wordpress建设的是模板网站吗,在其他地方有最近文章的列表,并使用自定义导航。您可以将页面模板用于这些目的。
本节向您展示如何构建用户可以通过其管理界面选择的页面模板。
例如,您可以根据以下要求构建页面模板:
模板层次结构中的页面模板
当有人浏览您的网站时,选择用于呈现此页面的模板。正如我们之前在模板层次结构中所了解的,模板文件按以下顺序查找:
页面模板——如果页面有一个自定义模板,那么在使用它时就会被分配。 page-{slug}.php - 如果没有指定自定义模板,将查找并使用包含页面别名的专业模板。 page-{id}.php - 如果没有找到包含页面别名的专业模板,则会查找并使用以页面id命名的专业模板。 page.php - 如果找不到包含页面 ID 的专用模板wordpress网站制作,将查找并使用主题的默认页面模板。 .php - 如果没有找到 page.php,则无论文章类型如何,都将查找并使用单个文章的主题模板。 index.php - 如果未分配或找到特定页面模板,则默认使用主题的索引文件来呈现页面。
还有一个名为 paged.php 的已定义模板。它不是用于页面帖子类型,而是用于显示存档的多个页面。
页面模板的目的和用户控制
如果您打算为您的主题制作自定义页面模板,则应在继续之前确定以下几点:
用户可以在创建或编辑页面时选择每个具有模板名称的页面模板。可以在页面 > 新页面 > 页面属性 > 模板中找到可用模板的列表。所以用户可以选择任何带有模板名称的页面模板,这不是你的本意。
例如,如果您想为“关于”页面使用特定模板,则将页面模板命名为“关于模板”是不合适的,因为它在所有页面上全局可用(即用户可以适用于任何页面)。相反,创建一个一次性使用的模板,当用户访问“关于”页面时,该模板将使用适当的模板呈现。
相比之下,许多主题都可以选择页面的列数。每个选项都是一个全局可用的页面模板。为了给您的用户提供这个全局选项,您需要为每个选项创建页面模板并为每个模板命名。
通过文件的命名方式以及它们是否有特定的注释来确定模板是供全球使用还是个人使用。

有时它可以使模板在全球范围内可用,即使它看起来只有一个目的。在开发主题时,很难预测用户会给他们的页面命名。作品集页面就是一个很好的例子,因为并非每个用户的作品集名称都相同或页面 ID 相同,但他们可能希望使用该模板。
组织页面模板文件
如组织主题文件中所述,可识别子文件夹中的页面模板。因此,最好将全局页面模板存储在此文件夹中,以使它们看起来井井有条。
需要注意的是,那些特定的(一次性使用,如包含id或别名)的页面模板文件不能放在子文件夹中,如果要在子主题中使用,也应该放在父主题中根目录。
创建供全球使用的页面模板
有时您需要一个可以在任何页面或多个页面上全局使用的模板。一些开发人员会使用文件名前缀对他们的模板进行分组,例如-.php
注意:不要使用 page- 作为前缀,否则文件将被解释为专用模板,意味着仅在页面的网站上可用。
有关不可用的主题文件命名约定和文件名的信息,请参阅。
创建新页面模板的一种快速且安全的方法是复制 page.php 并将其命名为其他名称。这样,您可以从其他页面的 HTML 结构开始,并根据需要编辑这个新文件。
要创建一个全局模板,请在文件顶部添加一个 PHP 注释,指明模板的名称。
最好给模板起一个有意义的名称,因为用户在编辑页面时会看到这个名称。例如,您可以将模板命名为 、 Blog 或 .
下面是一个主题的示例,它创建了一个名为 Full Width Page 的页面模板:
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
@ >
将此页面模板文件上传到主题文件夹(如page-子文件夹)后,访问后台任意页面的编辑界面,在页面属性-模板中也可以看到您创建的模板。用户可以在此处访问您的全局页面模板。
注意:模板列表为 250px 宽,如果您的模板名称太长wordpress做网站,可能会被裁剪,无法完全显示。
为特定页面创建页面模板
如模板层次结构页面中所述,您可以为特定页面创建模板。要为特定页面创建模板,请复制现有 page.php 文件并使用页面的 slug 别名或 ID 重命名该文件:
页面-{slug}.-{ID}。 php
示例:您的“关于”页面上有一个 ID 为 6 的“关于”别名。如果活动文件夹中存在名为 page-about.php 或 page-6.php 的文件主题,它将被自动找到并用于呈现关于页面。
这个特定的页面模板必须在主题的文件夹中(即/wp-//my-theme-name/)wordpress建设的是模板网站吗,不能放在子文件夹中。
为特定帖子类型创建页面模板
默认情况下,“页面”帖子类型可以使用自定义页面模板。
要为特定文章类型创建页面模板,只需在模板名称下方添加一行,其中包含您希望模板支持的文章类型。例如:

注意:只有 4.7 及以上版本支持添加页面模板到“页面”以外的文章附加文章类型为
如果文章类型至少有一个模板,“文章属性”元数据框将显示在后台,而不添加对“页面-”或其他交易对手的文章类型支持。注册文章类型时,您可以使用“”选项卡为每个文章类型自定义“文章属性”选项卡。
向后兼容性:
假设您要公开发布支持文章类型模板的主题。 4. 7 之前的版本将忽略帖子类型标题并在页面模板列表中显示该模板,即使它仅适用于其他帖子类型。为了防止这种情况,您可以包含一个过滤器以将其从列表中排除。这是一个例子:
/**
* 为 WordPress 4.6 及以下版本隐藏自定义文章类型的页面模板
*
* @param array $post_templates Array of page templates. Keys are filenames, values are translated names.
* @return array Filtered array of page templates.
*/

function makewp_exclude_page_templates( $post_templates ) {
if ( version_compare( $GLOBALS['wp_version'], '4.7', '<' ) ) {
unset( $post_templates['templates/my-full-width-post-template.php'] );
}
return $post_templates;
}
add_filter( 'theme_page_templates', 'makewp_exclude_page_templates' );
这样您可以在 4.7 及更高版本中支持自定义帖子类型模板,同时保持向后兼容性。
请注意,这实际上是一个动态 {$} 过滤器。钩子名称的 $ 部分是指模板支持的文章类型。例如,您可以使用 tes 过滤产品发布类型的模板列表。
在页面模板中使用条件标签
您可以在 page.php 文件中使用“条件标签”来进行较小的、特定于页面的修改。例如,下面的示例代码为您的主页加载 -home.php 文件,但为“关于”页面加载另一个文件 -about.php,然后为所有其他页面应用默认的 .php 文件。
if ( is_front_page() ) :
get_header( 'home' );
elseif ( is_page( 'About' ) ) :
get_header( 'about' );
else:

get_header();
endif;
您可以在此处了解有关条件标签的更多信息。
识别页面模板
如果你的模板使用了()函数,它会添加类名(page)、page ID(page-id-{ID})和使用的page模板文件名。对于默认的page.php,生成的类名为page--:
一个特定的模板(page-{slug}.php 或 page-{ID}.php),也生成了 page--class 而不是它自己的 body 类。
当使用自定义页面模板时,page- 会输出一个基于特定模板名称的类名。例如,如果您的自定义页面模板文件命名如下:
然后生成的渲染 HTML 将如下所示:
请注意,类名 page--my--page-php 应用于 body 标签。
页面模板函数
这些内置函数和方法可以帮助您使用页面模板:
这篇文章对您有用吗?
文章来自互联网,侵权请联系删除,文章阐述观点来自文章出处,并不代表本站观点。
www.8001717.cn