[Updated 25/10/2014: to fix issue with it not working on other dynamic page]


I have no idea why adding a filter to the blog posts shown on Google's Blogger had to be this complicated. Once I understood the order of things and how to query them in the end, thanks to machine readable (http://www.machinereadable.com/2010/01/blogger-filter-posts-by-label-on-your.html) the solution is very simple. The following is the only thing needed in your template. The instructions below will be based on my template of course (http://bloggercando.blogspot.co.uk/2014/05/famemag-free-minimalist-blogger-magazine-template.html).

<b:if cond='data:blog.url == data:blog.homepageUrl'>
   <b:if cond='data:post.labels'>
      <b:loop values='data:post.labels' var='label'>
         <b:if cond='data:label.name == &quot;main&quot;'>
[template code here] 
         </b:if>
      </b:loop>
   </b:if>
</b:else> 
[copy of template code here] 
</b:if>

The code above was inserted before the <article class='entry'> of where the articles are inserted, just above <div class='post-title clear'>. These were then closed right after <!-- share buttons --><b:if cond='data:blog.pageType == &quot;item&quot;'><b:include data='post' name='shareButtons'/></b:if>. In your code, the blogger Template editor will highlight in red where the tags have not correctly closed.

The keyword I used in the code above is main. This can be changed to what ever you like. This means that a post should not show up on the main page unless the label main is added to it. I was forced to add the <b:if cond='data:blog.url != &quot;http://blog.xynos.co.uk/search/label/useful-commands&quot;'> to exclude the code from running on the filtered webpages.

It seems to work just fine, for now. Not the best solution I know but it is a good fix for now! Not sure what I have broken in the back end. Ideally the looping and if statements need to be added individually to the post sections.