[wp-hackers] front-page.php always overrides home.php?

William Davis will.davis at gmail.com
Fri Nov 19 21:41:29 UTC 2010


Haha, well in 3.1 there now are custom post formats as well.

Custom post type would be nice as custom object types, imo.

William P. Davis
will.davis at gmail.com
207.660.5342
http://twitter.com/williampd
http://www.wpdavis.com



On Nov 19, 2010, at 4:37 PM, Chip Bennett wrote:

> Just wait until I get the gumption up to suggest replacing the  
> "Custom Post
> Type" nomenclature with "Custom Content Type"! ;)
>
> Chip
>
> On Fri, Nov 19, 2010 at 3:32 PM, Chris Gossmann <chris at wupperpiraten.de 
> >wrote:
>
>> Don't do that. I spent too much time explaining the Thematic users  
>> the
>> difference between the two functions ;)
>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: wp-hackers-bounces at lists.automattic.com [mailto:wp-hackers-
>>> bounces at lists.automattic.com] Im Auftrag von Chip Bennett
>>> Gesendet: Freitag, 19. November 2010 22:25
>>> An: wp-hackers at lists.automattic.com
>>> Betreff: Re: [wp-hackers] front-page.php always overrides home.php?
>>>
>>> Maybe I should just write up the patch, and see what kind of  
>>> reception
>>> it
>>> gets?
>>>
>>> The worst anyone can do is say "wontfix". :)
>>>
>>> Chip
>>>
>>> On Fri, Nov 19, 2010 at 3:21 PM, Chris Gossmann
>>> <chris at wupperpiraten.de>wrote:
>>>
>>>> Don't know .. for me is_front_page() was always the entry page and
>>> is_home
>>>> was always the page showing the blog posts ( the home of your  
>>>> blog).
>>>>
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: wp-hackers-bounces at lists.automattic.com [mailto:wp-hackers-
>>>>> bounces at lists.automattic.com] Im Auftrag von Chip Bennett
>>>>> Gesendet: Freitag, 19. November 2010 22:15
>>>>> An: wp-hackers at lists.automattic.com
>>>>> Betreff: Re: [wp-hackers] front-page.php always overrides  
>>>>> home.php?
>>>>>
>>>>> Exactly!
>>>>>
>>>>> So "home.php" ISN'T "home". It's simply the blog-index (posts-
>>> index),
>>>>> whether on the front page or another page.
>>>>>
>>>>> front-page.php and is_front_page() cover all of the uses of
>>> home.php
>>>>> and
>>>>> is_home() for both posts-index-as-home and static-page-as-home -
>>> which
>>>>> is
>>>>> why I'm suggesting to rename "home.php" and "is_home()" to
>>> something
>>>>> more
>>>>> accurate.
>>>>>
>>>>> Make sense, or am I still off-base?
>>>>>
>>>>> Chip
>>>>>
>>>>> On Fri, Nov 19, 2010 at 3:08 PM, Chris Gossmann
>>>>> <chris at wupperpiraten.de>wrote:
>>>>>
>>>>>> Ok .. did a test:
>>>>>>
>>>>>> If you have a standard installation without any special setting
>>> under
>>>>>> wp-admin / settings / reading:
>>>>>>
>>>>>> Front-page.php will be used as your entry page. Home.php isn't
>>> used
>>>>> at all.
>>>>>>
>>>>>> If you define a page as Front page and a page as Posts page under
>>> wp-
>>>>> admin
>>>>>> /
>>>>>> settings / reading:
>>>>>>
>>>>>> Front-page.php will be used for Front page and home.php for your
>>>>> Posts
>>>>>> page.
>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: wp-hackers-bounces at lists.automattic.com [mailto:wp-
>>> hackers-
>>>>>>> bounces at lists.automattic.com] Im Auftrag von Chip Bennett
>>>>>>> Gesendet: Freitag, 19. November 2010 21:58
>>>>>>> An: wp-hackers at lists.automattic.com
>>>>>>> Betreff: Re: [wp-hackers] front-page.php always overrides
>>> home.php?
>>>>>>>
>>>>>>> I'm not confusing the two, as far as I know.
>>>>>>>
>>>>>>> Simple question: if "front-page.php" and "home.php" template
>>> files
>>>>> both
>>>>>>> exist in a Theme, under what conditions will "home.php" be used
>>> on
>>>>> the
>>>>>>> home/front page of the site using that Theme?
>>>>>>>
>>>>>>> Chip
>>>>>>>
>>>>>>> On Fri, Nov 19, 2010 at 2:54 PM, Chris Gossmann
>>>>>>> <chris at wupperpiraten.de>wrote:
>>>>>>>
>>>>>>>> Seems as if you're mixing up front-page.php and front page
>>>>> template
>>>>>>> :)
>>>>>>>>
>>>>>>>> The existence of a front-page.php will always enforce the use
>>> of
>>>>> this
>>>>>>> file
>>>>>>>> as entry page of your blog. A front page template is a
>>> template
>>>>> file
>>>>>>> with a
>>>>>>>> different name that is activated by creating a page using
>>> this
>>>>>>> template and
>>>>>>>> the according settings under wp-admin / settings / reading.
>>>>>>>>
>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>> Von: wp-hackers-bounces at lists.automattic.com [mailto:wp-
>>>>> hackers-
>>>>>>>>> bounces at lists.automattic.com] Im Auftrag von Chip Bennett
>>>>>>>>> Gesendet: Freitag, 19. November 2010 21:27
>>>>>>>>> An: wp-hackers at lists.automattic.com
>>>>>>>>> Betreff: Re: [wp-hackers] front-page.php always overrides
>>>>> home.php?
>>>>>>>>>
>>>>>>>>> Thanks, Chris.
>>>>>>>>>
>>>>>>>>> But, does that make sense?
>>>>>>>>>
>>>>>>>>> If a Theme includes both template files "front-page.php"
>>> and
>>>>>>>>> "home.php", the
>>>>>>>>> Blog index will display differently, depending on user
>>>>> settings:
>>>>>>>>>
>>>>>>>>> If Blog (i.e. "posts") is set to display on the front page,
>>>>> then
>>>>>>> the
>>>>>>>>> Blog
>>>>>>>>> index will use "front-page.php"; however, if the front page
>>> is
>>>>> set
>>>>>>> to
>>>>>>>>> display a static Page, and the Blog set to display on a
>>> non-
>>>>> front
>>>>>>> Page,
>>>>>>>>> then
>>>>>>>>> the Blog index will use "home.php".
>>>>>>>>>
>>>>>>>>> That seems inconsistent (and confusing) to me:
>>>>>>>>>
>>>>>>>>> 1) Blog display will be different depending on location
>>>>> setting,
>>>>>>> rather
>>>>>>>>> than
>>>>>>>>> by content type (Page vs Post)
>>>>>>>>> 2) "*home*.php" is potentially used for a non-home page.
>>>>>>>>> 3) "front-*page*.php" is used for both Pages and Posts.
>>>>>>>>>
>>>>>>>>> I've not poked around Trac yet; does anyone know if any
>>> related
>>>>>>> tickets
>>>>>>>>> have
>>>>>>>>> been opened? I think some of this needs some cleaning-up.
>>>>>>>>>
>>>>>>>>> Chip
>>>>>>>>>
>>>>>>>>> On Fri, Nov 19, 2010 at 2:20 PM, Chris Gossmann
>>>>>>>>> <chris at wupperpiraten.de>wrote:
>>>>>>>>>
>>>>>>>>>> Hi Chip,
>>>>>>>>>>
>>>>>>>>>> this is the correct behavior.
>>>>>>>>>>
>>>>>>>>>> Front-page is always the front page / first page, whereas
>>>>> home
>>>>>>> could
>>>>>>>>> be
>>>>>>>>>> your
>>>>>>>>>> home / first page or whatever you defined to show your
>>>>> regular
>>>>>>> posts.
>>>>>>>>>> Therefore front-page.php will override home.php.
>>>>>>>>>>
>>>>>>>>>> Chris
>>>>>>>>>>
>>>>>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>>>>>> Von: wp-hackers-bounces at lists.automattic.com
>>> [mailto:wp-
>>>>>>> hackers-
>>>>>>>>>>> bounces at lists.automattic.com] Im Auftrag von Chip
>>> Bennett
>>>>>>>>>>> Gesendet: Freitag, 19. November 2010 20:38
>>>>>>>>>>> An: wp-hackers at lists.automattic.com
>>>>>>>>>>> Betreff: [wp-hackers] front-page.php always overrides
>>>>> home.php?
>>>>>>>>>>>
>>>>>>>>>>> All,
>>>>>>>>>>>
>>>>>>>>>>> If a Theme defines both a "home.php" template file (for
>>> a
>>>>>>> custom
>>>>>>>>> "home"
>>>>>>>>>>> page
>>>>>>>>>>> displaying Posts) and a "front-page.php" template file
>>> (for
>>>>> a
>>>>>>>>> custom
>>>>>>>>>>> "home"
>>>>>>>>>>> page displaying a static Page), it appears that "front-
>>>>>>> page.php"
>>>>>>>>> will
>>>>>>>>>>> always
>>>>>>>>>>> take precedence over "home.php":
>>>>>>>>>>>
>>>>>>>>>>> Here's the definition of
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>
>>> is_front_page()<http://core.trac.wordpress.org/browser/tags/3.0.1/ 
>>> wp-
>>>>>>>>>>> includes/query.php#L353>
>>>>>>>>>>> :
>>>>>>>>>>>
>>>>>>>>>>> 344     /**
>>>>>>>>>>> 345  * Whether current page query is the front of the
>>> site.
>>>>>>>>>>> 346  *
>>>>>>>>>>> 347  * @since 2.5.0
>>>>>>>>>>> 348  * @uses is_home()
>>>>>>>>>>> 349  * @uses get_option()
>>>>>>>>>>> 350  *
>>>>>>>>>>> 351  * @return bool True, if front of site.
>>>>>>>>>>> 352  */
>>>>>>>>>>> 353 function is_front_page() {
>>>>>>>>>>> 354         // most likely case
>>>>>>>>>>> *355         if ( 'posts' ==
>>> get_option('show_on_front') &&
>>>>>>>>> is_home()
>>>>>>>>>>> )*
>>>>>>>>>>> 356                 return true;
>>>>>>>>>>> 357         elseif ( 'page' ==
>>> get_option('show_on_front')
>>>>> &&
>>>>>>>>>>> get_option('page_on_front') &&
>>>>>>> is_page(get_option('page_on_front'))
>>>>>>>>> )
>>>>>>>>>>> 358                 return true;
>>>>>>>>>>> 359         else
>>>>>>>>>>> 360                 return false;
>>>>>>>>>>> 361 }
>>>>>>>>>>>
>>>>>>>>>>> And then here's the relevant code from the template
>>>>>>>>>>> loader<http://core.trac.wordpress.org/browser/trunk/wp-
>>>>>>>>>>> includes/template-loader.php#L21>
>>>>>>>>>>> :
>>>>>>>>>>>
>>>>>>>>>>> 21 if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
>>>>>>>>>>> 22         $template = false;
>>>>>>>>>>> 23         if     ( is_404()            && $template =
>>>>>>>>>>> get_404_template()
>>>>>>>>>>>         ) :
>>>>>>>>>>> 24         elseif ( is_search()         && $template =
>>>>>>>>>>> get_search_template()
>>>>>>>>>>>        ) :
>>>>>>>>>>> 25         elseif ( is_tax()            && $template =
>>>>>>>>>>> get_taxonomy_template()       ) :
>>>>>>>>>>> *26         elseif ( is_front_page()     && $template =
>>>>>>>>>>> get_front_page_template()     ) :*
>>>>>>>>>>> *27         elseif ( is_home()           && $template =
>>>>>>>>>>> get_home_template()
>>>>>>>>>>>          ) :*
>>>>>>>>>>> 28         elseif ( is_attachment()     && $template =
>>>>>>>>>>> get_attachment_template()     ) :
>>>>>>>>>>> 29                 remove_filter('the_content',
>>>>>>>>> 'prepend_attachment');
>>>>>>>>>>> 30         elseif ( is_single()         && $template =
>>>>>>>>>>> get_single_template()
>>>>>>>>>>>        ) :
>>>>>>>>>>> 31         elseif ( is_page()           && $template =
>>>>>>>>>>> get_page_template()
>>>>>>>>>>>        ) :
>>>>>>>>>>> 32         elseif ( is_category()       && $template =
>>>>>>>>>>> get_category_template()       ) :
>>>>>>>>>>> 33         elseif ( is_tag()            && $template =
>>>>>>>>>>> get_tag_template()
>>>>>>>>>>>         ) :
>>>>>>>>>>> 34         elseif ( is_author()         && $template =
>>>>>>>>>>> get_author_template()
>>>>>>>>>>>        ) :
>>>>>>>>>>> 35         elseif ( is_date()           && $template =
>>>>>>>>>>> get_date_template()
>>>>>>>>>>>        ) :
>>>>>>>>>>> 36         elseif ( is_archive()        && $template =
>>>>>>>>>>> get_archive_template()        ) :
>>>>>>>>>>> 37         elseif ( is_comments_popup() && $template =
>>>>>>>>>>> get_comments_popup_template() ) :
>>>>>>>>>>> 38         elseif ( is_paged()          && $template =
>>>>>>>>>>> get_paged_template()
>>>>>>>>>>>         ) :
>>>>>>>>>>> 39         else :
>>>>>>>>>>> 40                 $template = get_index_template();
>>>>>>>>>>> 41         endif;
>>>>>>>>>>> 42         if ( $template = apply_filters(
>>>>> 'template_include',
>>>>>>>>>>> $template ) )
>>>>>>>>>>> 43                 include( $template );
>>>>>>>>>>> 44         return;
>>>>>>>>>>> 45 endif;
>>>>>>>>>>>
>>>>>>>>>>> Is this the intended behavior? If so, it would seem to
>>> make
>>>>> the
>>>>>>> use
>>>>>>>>> of
>>>>>>>>>>> "home.php" obsolete, since "front-page.php" covers both
>>> use
>>>>>>> cases.
>>>>>>>>>>>
>>>>>>>>>>> (And sorry for the incredibly belated question. I know
>>> that
>>>>>>> "front-
>>>>>>>>>>> page.php"
>>>>>>>>>>> has been around for a year. I've just never actually
>>> *used*
>>>>> it,
>>>>>>> so
>>>>>>>>>>> wasn't
>>>>>>>>>>> aware of how it was defined/used by the template
>>> loader.)
>>>>>>>>>>>
>>>>>>>>>>> Chip
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> wp-hackers mailing list
>>>>>>>>>>> wp-hackers at lists.automattic.com
>>>>>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> wp-hackers mailing list
>>>>>>>>>> wp-hackers at lists.automattic.com
>>>>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> wp-hackers mailing list
>>>>>>>>> wp-hackers at lists.automattic.com
>>>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> wp-hackers mailing list
>>>>>>>> wp-hackers at lists.automattic.com
>>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> wp-hackers mailing list
>>>>>>> wp-hackers at lists.automattic.com
>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>
>>>>>> _______________________________________________
>>>>>> wp-hackers mailing list
>>>>>> wp-hackers at lists.automattic.com
>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>
>>>>> _______________________________________________
>>>>> wp-hackers mailing list
>>>>> wp-hackers at lists.automattic.com
>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>
>>>> _______________________________________________
>>>> wp-hackers mailing list
>>>> wp-hackers at lists.automattic.com
>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>
>>> _______________________________________________
>>> wp-hackers mailing list
>>> wp-hackers at lists.automattic.com
>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>
>> _______________________________________________
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.com
>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers



More information about the wp-hackers mailing list