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

Daniel Tara contact at onedesigns.com
Sun Jul 6 03:55:30 UTC 2014


I sort of understand what Philipp is trying to explain here. It’s a mistake I’ve made with one of my themes exactly the way he describes it. I made the poor design choice to display the slider on both the front page and blog page. Users were complaining that wasn’t expected behavior so I created some separate custom page templates that display the blog using a custom query. If users want a static front page and not display the slider on the blog page they keep the page that’s set as blog hidden from the menu and use the custom page template instead. It’s an ugly workaround and now that I learned from my mistake I too recommend to properly implement the core static front page and blog functionality instead of falling back to a custom page template.

Daniel

On Jul 6, 2014, at 5:00 AM, Otto <otto at ottodestruct.com> wrote:

> 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/77a7a996/attachment-0001.html>


More information about the theme-reviewers mailing list