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

Leo germani leogermani at gmail.com
Tue Aug 28 21:55:48 UTC 2012


Hi Chip,

Thanks for your responses:

... But I am an adamant proponent of Themes remaining
> within their functional scope: that is to *present* content, not to
> *define* or *manage* content or site options (including whether the front
> page should display the blog posts index or static content).


This makes perfect sense when you are creating a general porpouse blog
theme. But when you are creating a theme specifically designed for one
site, that is not true. There is no situation where the site owner will
want to change what appears on the home page. And thats why Im bringing
this up. This option, in that case (most of the cases for people who build
websites using WP, I beleive) this option is not just useless and confusing
but also dangerous, because the user can accidentally removing his homepage
(by tweaking this option or deleting one of the dummy pages).

Do you see my point?

Its not good at all to have to explain to a client "see this page? it has
no content and anything you write here wont appear anywhere, but please
dont delete cause it will break your site".

It really makes sense to me that themes should be able to disable those
Reading options and define through the template files.


>  side note: according to you guys this page shoulbe be banned from the
> codex:
> http://codex.wordpress.org/Making_Your_Blog_Appear_in_a_Non-Root_Folder
>
>
> The current version of that Codex entry is just shy of three years old.
> That's bound to happen in a community/volunteer-maintained Codex. *Banned*
> from the Codex? No; it merely needs to be updated to reflect current best
> practices, such as the use of the pre_get_posts filter instead of
> query_posts(), and (more importantly) to reflect current WordPress UX. In
> all honesty, that Codex entry likely not even *needed* anymore, as
> assigning the blog posts index to a static Page named "blog" is all that is
> required to accomplish the purpose of that entry.
>

That was a poor choice of word, sorry. Thats what I meant.

Leo,,


>
> Regards,
>
> Chip
>
> On Mon, Aug 27, 2012 at 5:15 PM, Leo germani <leogermani at gmail.com> wrote:
>
> > Yes, I see the root fo the confusion now.
> >
> > Sometimes I just think that those optinos in the readin panel are
> dangerous
> > for the user. I dont want to have a dummy page called "blog" to list my
> > blog posts. The user can accidentally delete this page and break the
> site.
> > or tweak that option...
> >
> > As a theme developer, what Im looking for is a way to force what will be
> > displayed in the front page and where the visitor will find the blog.
> >
> > If I write a front-page.php file and access the root of my site. I have
> > whatever I want there, despite of what is selected on the reading
> settings.
> > But then I dont have a URL to acccess my blog... see?
> >
> > I could make a custom rewrite rule, Ive done it sometimes, but I just
> > though I would bring this up here cause its seems something lots of
> people
> > want to do and that should have a better support. But I understand now
> that
> > we can not do somethig thar ignores the reading settings...
> >
> > hmmm...
> >
> > side note: according to you guys this page shoulbe be banned from the
> > codex:
> > http://codex.wordpress.org/Making_Your_Blog_Appear_in_a_Non-Root_Folder
> >
> > Leo,,
> > On Mon, Aug 27, 2012 at 7:06 PM, Justin Tadlock <
> justin at justintadlock.com
> > >wrote:
> >
> > > Not necessarily.  You could always set up custom rewrite rules. It's
> just
> > > easier to do it through the reading settings.
> > >
> > > You don't need a page template for it though.  Actually, I don't think
> > you
> > > can even use a page template at all anyway.  WP will automatically use
> > > "home.php" or, if it doesn't exist, fall back to "index.php".
> > >
> > >
> > > On 8/27/2012 5:00 PM, Leo germani wrote:
> > >
> > >> I actually forgot to ask in my email if I was missing something huge
> > here.
> > >> But beleive me, I see a lot of people running into the same problem.
> > >>
> > >> I understand the difference between home.php and front-page.php better
> > >> now,
> > >> but the question that brought me here is: if I have a front-page.php
> > file
> > >> in my theme, what link my visitor will have to access to see my
> latests
> > >> posts? Does it have necessarily to be done through the Reading options
> > and
> > >> setting up a page template?
> > >>
> > >> Leo,,
> > >>
> > >> On Mon, Aug 27, 2012 at 6:32 PM, Justin Tadlock <
> > justin at justintadlock.com
> > >> >**wrote:
> > >>
> > >>  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,,
> > >>>>
> > >>>>
> > >>>>  ______________________________****_________________
> > >>> wp-hackers mailing list
> > >>> wp-hackers at lists.automattic.****com <wp-hackers at lists.automattic.
> > **com<wp-hackers at lists.automattic.com>
> > >>> >
> > >>> http://lists.automattic.com/****mailman/listinfo/wp-hackers<
> > http://lists.automattic.com/**mailman/listinfo/wp-hackers>
> > >>> <ht**tp://lists.automattic.com/**mailman/listinfo/wp-hackers<
> > http://lists.automattic.com/mailman/listinfo/wp-hackers>
> > >>> >
> > >>>
> > >>>
> > >>
> > >>
> > > ______________________________**_________________
> > > wp-hackers mailing list
> > > wp-hackers at lists.automattic.**com <wp-hackers at lists.automattic.com>
> > > http://lists.automattic.com/**mailman/listinfo/wp-hackers<
> > http://lists.automattic.com/mailman/listinfo/wp-hackers>
> > >
> >
> >
> >
> > --
> > leogermani.com.br
> > _______________________________________________
> > 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
>



-- 
leogermani.com.br


More information about the wp-hackers mailing list