问题
I'm running Wordpress 3.3.1.
I'm writing a child theme that modifies the default twentyeleven theme. Everything seems normal, except that when I add a custom page template, it doesn't appear in the add/edit screen (so I can't use it!).
To elaborate on "normal", here's what IS working: My child theme appears and activates normally. My CSS code (in style.css) is appearing. My files from the template hierarchy are working (ex: front-page.php, page.php)
I've read and reread the codex, and my custom page template file ("coming-soon.php") seems to have the correct header:
<?php
/*
Template Name: Coming Soon
*/
So why won't it show up under the "Template" drop-down???
I've added custom templates dozens of times and never had this problem. The only possible difference I can think of is that I'm writing a child theme (even though the codex says this shouldn't matter), or perhaps it's a difference in the newest update of WP.
回答1:
I can't duplicate what you're seeing with a clean install of WordPress 3.3.1. I have a theme with just two files, style.css
, containing:
/*
Theme Name: stackoverflow-8946077
Template: twentyeleven
Version: 0.0.1
*/
@import url("../twentyeleven/style.css");
and coming-soon.php
, containing:
<?php
/*
Template Name: Coming Soon
*/
get_header();
?><h1>Coming Soon</h1><?php
get_footer();
?>
the first part of which was copied from your question.
I see the template as expected:

The only things I can think of are to double-check:
- the file exists on the server you're running on
- the file's in the child template's directory (though it should work if it's in the
twentyeleven
directory) - there's no file with the same name in the
twentyeleven
directory, which (I think) would take precedence - the file name ends in
.php
- you only have a single space between "Template" and "Name:" (the regex used contains the literal
Template Name:
)
Failing that, the dropdown is populated by the get_page_templates
function in wp-admin/includes/theme.php
. Might be worth sticking some debug code in there to see if the $templates
variable includes coming-soon.php
.
回答2:
This is an old thread. But if anyone is looking for solutions now, it may be the issue in WP 4.9. More details: Templates not working properly
回答3:
In my situation, it ended up being the file permissions. I set it to 755 or whatever the standard WP permission is (in regards to security) and it worked!
回答4:
Mine also ended up being the file permissions.
I set it to 777, and it worked like a charm!
来源:https://stackoverflow.com/questions/8946077/cannot-add-custom-page-template-to-my-child-theme