I am having a quite odd case with WP today, and after spending about an hour searching on google and forums, can’t find any answers. I hope posting here might allow me some chance to get help from WordPress Wizards that lurks somewhere on this support forum 🙂
Anyway, my problem here is that I accidentally deleted page.php on my template (I am trying to remove all default template and make WordPress more personalized and customizing backend). I wanted to remove the template called ‘Default Template’ and make the template dropdown on pages shows like:
One Page Template (or just a random name)
Grid 2 sidebar Template (or just a random name)
Store contents (or just a random name)
After I deleted page.php — the Default Template didn’t removed at all, I still got it, and I got no way to style or remove it. Adding to the problem is when I recopied page.php from my repository, I got DOUBLE template called ‘Default Template’ now!
I tried to replicate the problem by installing a fresh copy of WP 3.1.2 and duplicate 2010, and then I activate that duplicate. Here’s my steps:
- Delete page.php and page-with-sidebar.php
- Check pages, now I got ‘Default Template’, but no page.php
- Recopied page.php
- Check pages, now I got TWO ‘Default Template’
- Switched to the original 2010 — check pages — works OK, with one ‘Default Template’ and one ‘Default Template with Sidebar’
- Switched back to the modified 2010 — check pages — still got double ‘Default Template’
Now, what I see here is that this problem definitely happens because I deleted page.php — and it’s stuck on the Theme, not on the wordpress installation itself. To make the matter worse, I can’t find any file that is updated because of it — really amusing.
This is what looks close to what I have, but not really:
- http://wordpress.org/support/topic/page-templates-gone-wp-271
- http://wordpress.org/support/topic/missing-template-files-makes-wp-fall-back-on-default
My questions:
- What should I do to fix the problem?
I wanted to know if there is anyway
to return the theme to recognize
that we already got the page.php
back. - How to remove the ‘Default Template’ from the dropdown lists of
page template? Maybe through unset
call on functions.php ?
Many thanks in advance.
Andre
Since this is a custom theme I can only guess what’s going on.
Possible answers to Question 1:
make sure that it’s your custom theme that’s activated
make sure that all your theme files
have the right Template Name. The
template name is what shows up in
the drop-down list. If you have
duplicates or the wrong ones then
you’ll get an unexpected list.
Answer to Question 2:
I don’t think you can remove “Default Template”. “Default Template” tells to WordPress to use page.php. if that’s not present then use index.php.
Another possibility is that one of your templates files has a Template Name of “Default Template”. it’s silly i know, but it’s possible. That would definitely make you see double.
HTH
I just checked how this template selector works and it seems that inside
wp-admin/includes/meta-boxes.php
line number588
, Default template option is hard coded. You can’t remove that option unless you edit this file itself.Possible solutions for your problem :
Search php files for:
* Template Name: Default Template
and remove that header tag if it exists.Change to another theme, revert original twentyten and then change back to twentyten again.
I hope one of those solutions work for you.
I second the answer from ‘mattsay’ (hurray, btw!!) – if you open admin/includes/meta-boxes.php you can move the line
to UNDER
– instead of above, which moves it to the end of the select list and, thus, not the default. For me, this means that ‘showcase’ was now first… so i changed the title on the ‘sidebar-page.php’ code in the themes’ folder to a name that started with a letter that would come before ‘showcase’ (ie. ‘Default’), and POOF the sidebar template is now the default template when you go to add a new page.
side note: this only changes the add/edit template list, to change the one on ‘quick edit’ on the page list you need to also make the same changes (move the default option to the bottom) on admin/includes/class-wp-posts-list-table.php as well.
i also changed the option to say ‘Wide Template’ instead of ‘Default Template’ which is easier for my clients to understand.