<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Jul 5, 2014 at 12:03 PM, Philip M. Hofer (Frumph) <span dir="ltr"><<a href="mailto:philip@frumph.net" target="_blank">philip@frumph.net</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div style="font-family:Calibri;color:rgb(0,0,0);font-size:12pt">
<div>Just tested to make sure as well.</div>
<div> </div>
<div>IF you use a home.php file AND set the settings –> reading,  posts 
page as one of your sub pages, it will STILL use both home.php on the index AND 
the posts page.  Again, not what is wanted.  So all of the ‘events’ 
that occur on the LANDING page are now duplicated on the page you set as the 
POSTS page.</div>
<div> </div>
<div>Again, not what is wanted; hence the use of the blog template is 
necessary.</div>
<div> </div>
<div>I have these three files:</div>
<div> </div>
<div>front-page.php</div>
<div>home.php</div>
<div>index.php</div>
<div> </div>
<div>It ALWAYS runs the home.php for both locations, also executing all events 
for is_home/front_page on both.</div>
<div> </div>
<div>front-page.php and index.php are not even looked at for either 
position. </div></div></div></div></blockquote><div><br></div><div><br></div><div>No, this is incorrect. The hierarchy is very clear on this subject:</div><div><br></div><div>1. is_front_page() being true will cause the site to look at front-page.php, if it exists.</div>


<div><br></div><div>2. Else, if is_home() is true, then it will look at home.php followed by index.php.</div><div><br></div><div>The is_front_page() is true whenever the front page is displayed, regardless of content.</div>


<div><br></div><div>The is_home() is true whenever the main blog posts page is being displayed, no matter where it is. The main blog posts list is defined as "home".</div><div><br></div><div>Now, note that if you screw around with the main query, then you can make things like is_home() return true when they shouldn't and such. All of the template hierarchy presumes that the main query is being handled by WordPress and not fiddled with by a plugin or some such thing. So yes, whenever is_home() is true, then home.php will be loaded, but if you make is_home() true via other means, then all bets are off.</div>

<div><br></div><div><br></div><div><br></div><div>As for the original question, there is no such template as "blog.php" and it is not possible to make the main blog posts listing to display using a Page Template. The main blog posts listing will always use one of front-page.php, home.php, or index.php, depending on circumstances.</div>


<div><br></div><div>These circumstances are actually not difficult to figure out:</div><div><br></div><div>- The front-page.php is always used for the "Front Page", period, no matter what it is.<br></div><div>- If there is no front-page.php, or the blog posts are not displayed on the front-page (via Settings->Reading), then the home.php is always used for the "Blog Posts", period, no matter where they are displayed.</div>


<div>- The index.php file is the fallback for all of these contexts.</div><div><br></div><div>There is no case where you would want to make a blog-posts-specific template, because that is what home.php is specifically for. The "home" is where the main blog posts listings display. I realize the terminology may be confusing because of the blog-centric nature, but that is how it works.</div>

<div><br></div><div>-Otto</div><div><br></div></div></div></div>