[theme-reviewers] Is Blog.php is allowed in theme?

Philip M. Hofer (Frumph) philip at frumph.net
Sun Jul 6 13:29:27 UTC 2014


@otto

https://core.trac.wordpress.org/ticket/28763#ticket

I wrote up a ticket about it, if this helps clarify a little; you know me – really bad at articulating my point in some cases.

The idea is that both the front page and posts set page are registering as is_home() when no posts page is set so regardless of which usage of is_home() is_front_page() is used that those events get executed – as you stated. 

So as I wrote in the ticket, if nothing is selected for showing front page that it should default to assign itself as is_front_page() if posts page was selected; which would fix that imo.

i.e the whole reason I use a page template, since the home/landing page doesn’t really imo need to be set (but according to you folk you say “you’re doing it wrong”) .. but no.. I’m not, it’s part of the system to allow it and after talking with a few others that’s how they believe it worked as well. – so instead of ‘you’re doing it wrong’ .. let’s fix it so that it’s a viable option.



From: Otto 
Sent: Saturday, July 05, 2014 7:00 PM
To: Discussion list for WordPress theme reviewers. 
Subject: Re: [theme-reviewers] Is Blog.php is allowed in theme?

I have no idea what you're talking about. 

The correct way:

1. Create two Pages, one with what you want for the front-page content, another with no content and simply named "blog" or whatever you want the URL to me.

2. Go to Settings->Reading and assign the static page settings to show the Posts on your blog page and the Page content you want on the front page.

3. There is no three.

That's literally all you have to do. No messing with files of any sort. You don't need to copy index.php to anything else at all. That's the whole point of the Loop, it can display any content, whether it is a Page or a series of Posts.

- If the theme wants to display the Front Page differently from the "default" view in index.php, then it should use a front-page.php to do that.
- If the theme wants to display the "blog" differently from the "default" view in index.php, then it should use a home.php to do that.

There's no real case where you'd want to do both of these, but if you did, then a simple if (is_home()) check in the front-page.php could do the trick for you. 

Basically, you're making things overcomplicated for the user. The theme should do it without asking the user to do anything special like messing with Page Templates. They should simply select what they want, through the core settings, and have that happen properly. Your way does not do that properly.

-Otto



On Sat, Jul 5, 2014 at 4:01 PM, Philip M. Hofer (Frumph) <philip at frumph.net> wrote:

  This is the tech support conversations to enable someone to have a blog on a separate page, comparison.

  Scenario 1 (your considered “proper” way)

  1.  First, FTP into your site.  Yes, FTP; you can watch some youtube video’s on learning how to ftp.  Contact your hosting to get your info properly.

  2. Navigate to the wp-content/themes/yourthemename/ and copy the index.php and name is front-page.php .. yes, copy.. yes, you need to first move the index.php file to your local drive then .. you don’t know how to do that? okay let me explain ... ( 5 mins later )

  3. Okay now that you have that, you can go to settings –> reading and enable the posts page to be a page you created, .. okay yeah so create a page yes, a page .. you’ll need to create 2 pages, call one “Home” and the other “Blog” (or) “posts page” 

  4. Okay you did that? fine, set those in the settings –> reading, choose which pages you want to display where.

  5. Cool beans, you’re done.  What?  That plugin you paid $50 for is displaying on the posts page too?  .. I’m sorry you’re going to have to take that up with that plugin maker.   Oh, that one too?  damn people don’t know how to program.

  6. I realize that it’s pretty complicated, but that’s the way the theme review team wants to have it done, I apologize profusely.

  --------------------------------------------

  Scenario 2:

  1.  Go to pages –> add new and create a blog page,  in the right column associate the “blog” template to it.   

  2. Go to the theme settings and disable the blog loop from appearing on the home page.

  3. You’re welcome!


  ---------------------------------

  Yeah, rather stick with my method.

  From: Otto 
  Sent: Saturday, July 05, 2014 1:20 PM
  To: Discussion list for WordPress theme reviewers. 
  Subject: Re: [theme-reviewers] Is Blog.php is allowed in theme?

  Okay, that's not a theme template, that is a Custom Page Template with a custom loop, and no, that sort of thing should not be allowed in any theme in the WordPress.org theme directory. In short, that is an incorrect way to show the main blog posts on a page. 

  There's nothing wrong with making Custom Page Templates to show special things, but the "main blog" is not a "special thing"... and it is correctly handled by the core Template Hierarchy. The home.php file should be what you use to display the blog posts, and you should not have a custom query in it like that.

  The reason that is wrong is because it doesn't correctly support the core functionality for setting a Page to appear on the front-page, and for the blog posts to appear on a sub-page. With this implementation, somebody has to make a Page and also set it to be using this Page Template, and then also set the Settings->Reading settings incorrectly as well. 

  See, if you have the Settings->Reading settings set correctly, with both the Front and Posts pages set to some values, then it is not possible for the Page to use your custom Page Template. So your "blog.php" here will not get used unless you also instruct the user to set up the site incorrectly (aka, incompletely). The correct way is to use the home.php to do a normal Blog loop, and then that will be used no matter where the blog posts are displayed, as long as the site is set up correctly.

  -Otto



  On Sat, Jul 5, 2014 at 1:13 PM, Philip M. Hofer (Frumph) <philip at frumph.net> wrote:

    it’s a template that themes have that do the blog loop that can be associated to a page, either custom for specific categories are all

    “there’s no way to display it using any other template file”

    This is what I use, works fine:

    <?php
    /*
    Template Name: Blog
    */
    get_header();

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

    $blog_query = array(
            'paged' => $paged,
            'post_type' => 'post',
            'in_the_loop' => true,
            'posts_per_page' => comicpress_themeinfo('home_post_count')
            );
            
    $wp_query = new WP_Query(); $wp_query->query($blog_query);
    if (have_posts()) {
        while (have_posts()) : the_post();
            $withcomment = 0;
            get_template_part('content', get_post_format());
        endwhile;
        comicpress_pagination();
    }

    wp_reset_query();

    get_footer();


    From: Otto 
    Sent: Saturday, July 05, 2014 11:00 AM
    To: Discussion list for WordPress theme reviewers. 
    Subject: Re: [theme-reviewers] Is Blog.php is allowed in theme?

    On Sat, Jul 5, 2014 at 12:48 PM, Philip M. Hofer (Frumph) <philip at frumph.net> wrote:

      The blog template is the point I was making in the first place, where if you do *not* want the is_home or is_front_page events to execute, that is the only way to bypass that; which makes having a blog.php useful.


    No, I mean, there is nothing in the code that I can find for "blog.php" at all. It's not mentioned in the Template Hierarchy, there's nothing in the template.php core file that mentions it. So, what exactly is this "blog.php" to which you refer? 

    As far as I know, if you're displaying the results of the main posts query, then you're doing it on front-page.php, home.php, or index.php. There's no way to display it using any other template file.

    -Otto


----------------------------------------------------------------------------

    _______________________________________________
    theme-reviewers mailing list
    theme-reviewers at lists.wordpress.org
    http://lists.wordpress.org/mailman/listinfo/theme-reviewers


    _______________________________________________
    theme-reviewers mailing list
    theme-reviewers at lists.wordpress.org
    http://lists.wordpress.org/mailman/listinfo/theme-reviewers




------------------------------------------------------------------------------
  _______________________________________________
  theme-reviewers mailing list
  theme-reviewers at lists.wordpress.org
  http://lists.wordpress.org/mailman/listinfo/theme-reviewers


  _______________________________________________
  theme-reviewers mailing list
  theme-reviewers at lists.wordpress.org
  http://lists.wordpress.org/mailman/listinfo/theme-reviewers





--------------------------------------------------------------------------------
_______________________________________________
theme-reviewers mailing list
theme-reviewers at lists.wordpress.org
http://lists.wordpress.org/mailman/listinfo/theme-reviewers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20140706/ffb01de0/attachment-0001.html>


More information about the theme-reviewers mailing list