无法将自定义页面模板添加到我的子主题

eme*_*his 3 wordpress wordpress-theming

我正在运行Wordpress 3.3.1.

我正在编写一个修改默认二十一主题的子主题.一切似乎都很正常,但是当我添加自定义页面模板时,它不会出现在添加/编辑屏幕中(所以我无法使用它!).

详细说明"正常",这是什么工作:我的孩子主题出现并正常激活.我的CSS代码(在style.css中)正在出现.模板层次结构中的文件正常工作(例如:front-page.php,page.php)

我已阅读并重读了codex,我的自定义页面模板文件("coming-soon.php")似乎有正确的标题:

<?php
 /*
  Template Name: Coming Soon
 */
Run Code Online (Sandbox Code Playgroud)

那么为什么它不会出现在"模板"下拉列表中???

我已经添加了几十次自定义模板,从来没有遇到过这个问题.我能想到的唯一可能的区别是我正在编写一个儿童主题(即使编码说这不重要),或者也许这是WP最新更新的一个区别.

Hob*_*obo 8

我无法通过干净安装的WordPress 3.3.1复制您所看到的内容.我有一个只有两个文件的主题style.css,包含:

/*
Theme Name:     stackoverflow-8946077
Template:       twentyeleven
Version:        0.0.1
*/
@import url("../twentyeleven/style.css");
Run Code Online (Sandbox Code Playgroud)

并且coming-soon.php,包含:

<?php
 /*
  Template Name: Coming Soon
 */

get_header();
?><h1>Coming Soon</h1><?php
get_footer();
?>
Run Code Online (Sandbox Code Playgroud)

第一部分是从你的问题中复制而来的.

我按预期看到了模板:

WordPress模板

我唯一能想到的就是仔细检查:

  • 该文件存在于您正在运行的服务器上
  • 该文件位于子模板的目录中(尽管如果它在twentyeleven目录中,它应该可以工作)
  • twentyeleven目录中没有相同名称的文件,我认为这个文件优先
  • 文件名以.结尾 .php
  • "模板"和"名称:"之间只有一个空格(使用的正则表达式包含文字Template Name:)

如果失败,下拉列表将由get_page_templates函数填充wp-admin/includes/theme.php.可能值得在那里插入一些调试代码以查看$templates变量是否包含coming-soon.php.