How to fix a theme with page.php Default Template that accidentally deleted?

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:

Read More

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:

  1. Delete page.php and page-with-sidebar.php
  2. Check pages, now I got ‘Default Template’, but no page.php
  3. Recopied page.php
  4. Check pages, now I got TWO ‘Default Template’
  5. Switched to the original 2010 — check pages — works OK, with one ‘Default Template’ and one ‘Default Template with Sidebar’
  6. 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:

My questions:

  1. 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.
  2. 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

Related posts

Leave a Reply

3 comments

  1. Since this is a custom theme I can only guess what’s going on.

    Possible answers to Question 1:

    1. make sure that it’s your custom theme that’s activated

    2. 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

  2. I just checked how this template selector works and it seems that inside wp-admin/includes/meta-boxes.php line number 588, 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.

  3. I second the answer from ‘mattsay’ (hurray, btw!!) – if you open admin/includes/meta-boxes.php you can move the line

    <option value='default'><?php _e('Default Template'); ?></option>
    

    to UNDER

    <?php page_template_dropdown($template); ?>
    

    – 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.