使用特定的插件名称为具有父页面的页面创建模板

时间:2015-09-07 作者:user1486133

我总是倾向于通过创建与slug相同的文件名来创建特定页面的布局模板。

例如:

Page Title: 联系我们

Page Slug: 联系我们

Filename of template to be used: 页面联系我们。php

这对我来说总是很好。

然而,我有一个页面有一个父页面。该页面包含slug executive search(高管搜索)页面,其中包含雇主的父级

由于某种原因page-executive-search.php 未选择作为此页面的默认模板。除了这一页之外,整个网站都运行得很好。我已经仔细检查了页面slug,它是executive-search 但是page-executive-search.php 未使用模板。

我不希望将其声明为要从编辑页面的下拉列表中选择的全局模板。我不想通过菜单来选择它。我希望它能自动应用到带有slug的页面executive-search

我想这与它有一个父页面有关。完整URL为:

http://mysite.co.uk/employers/executive-search

那么我错在哪里呢?

1 个回复
SO网友:totels

WordPress用于做出此决定的代码是get_page_template(). pagename版本(page-{slug}.php) 从中提取get_query_var( \'pagename\' ), 您可以在page.php 查看访问子页面时输出的内容的模板。

<?php echo get_query_var( \'pagename\' ); ?>
这主要意味着父段塞被忽略,因此/employers/executive-search//executive-search//random/executive-search 都将使用相同的页面模板page-executive-search.php 如果可用。

或者您可以使用ID 页的page-NN.php

相关推荐

从slug中获取好的类别名称(删除类别的破折号)

我在主题中有一个函数:$category = isset($_GET[\'category\']) ? wp_unslash($_GET[\'category\']) : \'\'; 问题是它输出的类别如下:"E;测试类别;然而,我想表明:"Test Category", 就像它保存在后端一样,没有破折号和较小的字母。有没有办法摆脱这个鼻涕虫,改用这个好名字?我尝试了很多东西(比如get_term_by() 功能),但对我来说什么都不起作用。我想这是因为我使用了$ca