[wp-hackers] the home.php problem: does it asks for a posts.php ?

Justin Tadlock justin at justintadlock.com
Mon Aug 27 21:32:35 UTC 2012


I think you're just getting confused with the "home" and "front page" 
terminology a bit.

home.php is your blog posts template (i.e., your 'post' post type 
archive). It's always used when is_home() is true, even if this is not 
the front page of your site.  You should never "put anything you want in 
there" with this template.  It's for showing your blog posts.

front-page.php is to override anything shown on the front page of the 
site, regardless of any other settings.

Maybe that helps explain it a bit.

On 8/27/2012 4:11 PM, Leo germani wrote:
> Hi all,
>
> Imagine you create a home.php or front-page.php template in your theme.
>
> Ok, now the visitor sees this template when visiting your sites front page.
> You can put anything you want there, in a template totally different from
> the blog template. Cool.
>
> Now you want to have a link to the lists of posts of your site, right? Of
> course it should be easy. But here you get in a weird situation with no
> good solution so far.
>
> Solution 1 - Page template
>
> You create a page template, with a simple code that executes query_posts()
> and load your index.php.
>
> This is not a good solution for at least 2 reasons. First, body_class()
> does not work well in this situation. Second, it requires the user to
> create the page and assign the template, this means he/she can break the
> site if this page is edited or deleted
>
> Solution 2 - Use the Reading settings as usual, and create 2 page
> templates. In this case, you will probably have to edit the name of your
> home.php file because sometimes it conflicts with these options. In other
> words, this scenario makes home.php useless.
>
> So, isnt it a good idea to have a posts.php template? Lets think about this
> solution:
>
> We have now post type archives, so, in theory, we could have a
> archive-post.php and if we access mysite.com?post_type=post we would see
> our blog there. It works, but it does not look very good when we're using
> beatiful permalinks.
>
> If we follow the same structure we have for others CPTs, visiting
> mysite.com/post would take me to the same place. But it does not, because
> this rewrite rule doesnt exist.
>
> Adding this rule could be a solution, but not a good one. /post/ is not a
> good URI for a blog.
>
> So what I think that could be done:
>
> . add a default rewirte rule that redirects /blog/ (or /posts/) to
> ?post_type=post (and then we use archive-post.php in our theme).
>
> . add an option in the permalinks page that lets the user change the posts
> base URI, as they do with categories and tags.
>
> What do you think about that?
>
> Leo,,
>



More information about the wp-hackers mailing list