Cannot add custom page template to my child theme

China☆狼群 提交于 2019-12-07 18:25:38

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!