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

时间:2012-01-20 18:26:08

标签: wordpress wordpress-theming

我正在运行Wordpress 3.3.1。

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

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

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

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

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

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

4 个答案:

答案 0 :(得分:8)

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

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

coming-soon.php,包含:

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

get_header();
?><h1>Coming Soon</h1><?php
get_footer();
?>

第一部分是从你的问题中复制过来的。

我按预期看到模板:

WordPress templates

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

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

如果失败,下拉列表将由get_page_templates中的wp-admin/includes/theme.php功能填充。可能值得在其中添加一些调试代码,以查看$templates变量是否包含coming-soon.php

答案 1 :(得分:2)

这是一个老线程。但如果现在有人在寻找解决方案,那么可能是WP 4.9中的问题。更多详情:Templates not working properly

答案 2 :(得分:1)

在我的情况下,它最终成为文件权限。我把它设置为755或任何标准的WP权限(关于安全性)并且它有效!

答案 3 :(得分:0)

我的最终还是文件权限。

我把它设置为777,它就像一个魅力!