[theme-reviewers] Feedback on use of query_posts please-Badidea?

Thomas from ThemeZee contact at themezee.com
Sun Sep 15 09:05:24 UTC 2013


I have never thought about that and I have to admit a theme option would be
also easy to use. But what are the advantages over a custom page template?

I have some page templates in the pro versions of my themes and most of my
users are very familiar how to use them. There is actually a
template-blog.php and template-blog-excerpt.php to display "blog posts" in
my pro themes. I have made the experience that most users expect these page
templates (since a lot of themes have such custom page templates) and many
users use them rather than the Settings > Readings option.

I can see that custom page templates are not the core method, but they work
fine and I can't see any big disadvantages. Besides, removing the page
templates now would break thousands of websites.


2013/9/14 Chip Bennett <chip at chipbennett.net>

> Why not use a Theme option for content-vs-excerpt?
>
>
> On Sat, Sep 14, 2013 at 4:48 PM, Thomas from ThemeZee <
> contact at themezee.com> wrote:
>
>> Since query_posts() has some drawbacks, I have just tried to create a
>> custom page template which retrieves the latest blog posts with pagination
>> and WP_Query: http://pastebin.com/Jg60rcyH
>>
>> I guess you should always use home.php first and only create a custom
>> page template to display blog posts if you need a second, different use
>> case (maybe home.php displays full content posts and template-blog.php
>> displays excerpt blog posts).
>>
>>
>> 2013/9/14 Thomas from ThemeZee <contact at themezee.com>
>>
>>> I would say that you can only have one query/loop on a template since
>>> there is only one $paged variable. I may be wrong with that but I can't
>>> think of any possibility to have two loops with pagination at one template.
>>>
>>> Therefore you can use archive-{post_type}.php for a query/loop of a
>>> custom post type with pagination, and home.php to display the loop of
>>> normal blog posts with pagination. I guess a query/loop on a custom page
>>> template which displays the latest blog posts with pagination is only
>>> possible with query_posts(), isn't it?
>>>
>>> Then you can use WP_Query to create a second (or more) loops on your
>>> archive-{post_type}.php or home.php without pagination.
>>>
>>>
>>>
>>> 2013/9/14 Chip Bennett <chip at chipbennett.net>
>>>
>>>> For future reference, I thought it might be helpful to write all of
>>>> this out in greater detail:
>>>>
>>>> http://www.chipbennett.net/2013/09/14/home-page-and-front-page-and-templates-oh-my/
>>>>
>>>>
>>>> On Sat, Sep 14, 2013 at 9:13 AM, Chip Bennett <chip at chipbennett.net>wrote:
>>>>
>>>>> Yeah, that's a different scenario altogether. :) What you're
>>>>> describing sounds like something that is actually a custom page template,
>>>>> with multiple queries/loops.
>>>>>
>>>>> If you can describe (in as much detail as possible) what you're trying
>>>>> to implement, I'm sure we can help you.
>>>>>
>>>>>
>>>>> On Sat, Sep 14, 2013 at 9:09 AM, Philip M. Hofer (Frumph) <
>>>>> philip at frumph.net> wrote:
>>>>>
>>>>>>   Cool, glad you got yours working, still need to figure out mine ;/
>>>>>> since my implementation isn’t like that.  (well the implementation I want
>>>>>> to do ;/)
>>>>>>
>>>>>> Multiple Templates with different post type loops that need pagination
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Zulfikar Nore <zulfikarnore at live.com>
>>>>>> *Sent:* Saturday, September 14, 2013 5:41 AM
>>>>>> *To:* Theme Reviewers <theme-reviewers at lists.wordpress.org>
>>>>>> *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please-Badidea?
>>>>>>
>>>>>>  "ZGani - take note here: on the static page assigned to display the
>>>>>> blog
>>>>>>
>>>>>> posts index, any custom page template assignment is ignored. So, whether or
>>>>>> not you assign a custom template to that page, WordPress is going to use
>>>>>> either home.php or index.php to render that page."
>>>>>>
>>>>>> That is where I was getting stamped and didn't know why - totally
>>>>>> makes sense now with that explanation. Appreciated :)
>>>>>>
>>>>>> Given the way I intended to have the theme and what users have asked
>>>>>> for I think template-featured.php is way to go rather than front-page.php.
>>>>>>
>>>>>> Once again thanks Chip - I now have an implementation to take forward
>>>>>> for my future themes :)
>>>>>>
>>>>>> Zulf
>>>>>>  ------------------------------
>>>>>> Date: Sat, 14 Sep 2013 08:19:55 -0400
>>>>>> From: chip at chipbennett.net
>>>>>> To: theme-reviewers at lists.wordpress.org
>>>>>> Subject: Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please-Badidea?
>>>>>>
>>>>>>  Not really. In the OP, the custom page template was an intended
>>>>>> solution/implementation. The root issue was *display of the blog
>>>>>> posts index on a page other than the site front page*.
>>>>>>
>>>>>> The problem is that the intended solution/implementation was
>>>>>> incorrect, thereby causing the pagination problems. Basically, if you're
>>>>>> using template files the way WordPress expects, then WordPress properly
>>>>>> handles the $query for the given context - including pagination.
>>>>>>
>>>>>> Pagination is only an issue if a custom page template is used to
>>>>>> circumvent core WordPress handling of the blog posts index (i.e. a
>>>>>> template-blog.php). If you're using home.php, and have the user properly
>>>>>> configure "front page displays", "front page", and "posts page", then you
>>>>>> won't see any pagination issues.
>>>>>>
>>>>>> The issue arises when using template files other than the way
>>>>>> WordPress expects, such as using a custom page template to display the blog
>>>>>> posts index. In that circumstance - a custom page template - WordPress sees
>>>>>> the main $query as the static-page post, and applies the pagination to the
>>>>>> static-page post. Any secondary query, regardless of how it's added, will
>>>>>> have no impact on pagination - thus requiring a pagination work-around.
>>>>>>
>>>>>> But if you rename template-blog.php as home.php, and instruct the
>>>>>> user to configure settings -> reading properly, then WordPress recognizes
>>>>>> the static page assigned as the "posts page" as the blog posts index, uses
>>>>>> the home.php template to render it, recognizes $query as the blog posts
>>>>>> index, and applies pagination properly to the blog posts index.
>>>>>>
>>>>>>
>>>>>> On Sat, Sep 14, 2013 at 7:54 AM, Philip M. Hofer (Frumph) <
>>>>>> philip at frumph.net> wrote:
>>>>>>
>>>>>>   the template is what we were talking about but making pagination
>>>>>> work for it since it’s not a pregenerated loop
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Chip Bennett <chip at chipbennett.net>
>>>>>> *Sent:* Saturday, September 14, 2013 4:50 AM
>>>>>>  *To:* Discussion list for WordPress theme reviewers.<theme-reviewers at lists.wordpress.org>
>>>>>> *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please-Badidea?
>>>>>>
>>>>>>   There are multiple options, including conditional statements
>>>>>> inside front-page.php and filtering front_page_template; but don't forget:
>>>>>> you don't *have* to use front-page.php at all.
>>>>>>
>>>>>> You can omit it, and package template-featured.php as a custom page
>>>>>> template. That way, the user has the control/option to use the featured
>>>>>> content template on the front page or on a different page, as well as the
>>>>>> control/option to use the featured content template or a default static
>>>>>> page on the site front page.
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 11:06 PM, Philip M. Hofer (Frumph) <
>>>>>> philip at frumph.net> wrote:
>>>>>>
>>>>>>   The big question at this point being that front-page.php if
>>>>>> included with theme though overrides the index.php on all counts but I
>>>>>> don’t want it distributed that way ;/   how would you counter that?
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Philip M. Hofer (Frumph) <philip at frumph.net>
>>>>>> *Sent:* Friday, September 13, 2013 8:04 PM
>>>>>>  *To:* Discussion list for WordPress theme reviewers.<theme-reviewers at lists.wordpress.org>
>>>>>> *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please-Badidea?
>>>>>>
>>>>>>    So front-page.php basically template redirects ‘overrides’ the
>>>>>> page that you set it to then?   and the blog loop uses the pre-get-parser
>>>>>> at that point on it?
>>>>>>
>>>>>> Damn, well yeah I was doing it wrong.  (sorry chip)
>>>>>>
>>>>>>
>>>>>>  *From:* Chip Bennett <chip at chipbennett.net>
>>>>>> *Sent:* Friday, September 13, 2013 7:48 PM
>>>>>> *To:* Discussion list for WordPress theme reviewers.<theme-reviewers at lists.wordpress.org>
>>>>>> *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please-Badidea?
>>>>>>
>>>>>>  You don't assign front-page.php to a static page, because
>>>>>> front-page.php isn't a custom page template. In fact, front-page.php should
>>>>>> *not* even have a "Template Name:" phpDoc header (which is what would allow
>>>>>> it to be assigned to a static page).
>>>>>>
>>>>>> The front-page.php template file is used contextually by WordPress,
>>>>>> as per the Template Hierarchy, based on settings -> reading -> "front page
>>>>>> displays" and "front page".
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 10:42 PM, Philip M. Hofer (Frumph) <
>>>>>> philip at frumph.net> wrote:
>>>>>>
>>>>>>   (snicker) guess I’ am doing it wrong then, because that has never
>>>>>> worked for me to assign front-page.php to a static page it has always
>>>>>> overwritten the main
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Zulfikar Nore <zulfikarnore at live.com>
>>>>>> *Sent:* Friday, September 13, 2013 7:32 PM
>>>>>> *To:* Theme Reviewers <theme-reviewers at lists.wordpress.org>
>>>>>>  *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please -Badidea?
>>>>>>
>>>>>>   Ah, progress....
>>>>>> Now I'm getting the hang of front-page.php :)
>>>>>>
>>>>>>  ------------------------------
>>>>>> Date: Fri, 13 Sep 2013 22:30:14 -0400
>>>>>> From: chip at chipbennett.net
>>>>>> To: theme-reviewers at lists.wordpress.org
>>>>>> Subject: Re: [theme-reviewers] Feedback on use of query_posts please
>>>>>> -Badidea?
>>>>>>
>>>>>> Both front-page.php and home.php are templates, defined in the
>>>>>> Template Hierarchy. What they are not, however, is custom static-page
>>>>>> templates. WordPress provides a core method to assign a static page to the
>>>>>> front page and to display the blog posts index, and the Template Hierarchy
>>>>>> defines which template files are used to render those contexts.
>>>>>>
>>>>>> To answer your specific question: when a user selects "static page"
>>>>>> for "front page displays, and then assigns static pages to the front page
>>>>>> and posts page, WordPress will use front-page.php to render the front page,
>>>>>> and home.php to render the posts page.
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 10:27 PM, Zulfikar Nore <
>>>>>> zulfikarnore at live.com> wrote:
>>>>>>
>>>>>>  Neither of which are templates.
>>>>>>
>>>>>> front-page.php will be picked up first so where will home.php fit in?
>>>>>>
>>>>>>
>>>>>>  ------------------------------
>>>>>> Date: Fri, 13 Sep 2013 22:24:49 -0400
>>>>>>
>>>>>> From: chip at chipbennett.net
>>>>>> To: theme-reviewers at lists.wordpress.org
>>>>>> Subject: Re: [theme-reviewers] Feedback on use of query_posts please
>>>>>> -Badidea?
>>>>>>
>>>>>> That other page is... (wait for it...)
>>>>>>
>>>>>> home.php
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 10:23 PM, Philip M. Hofer (Frumph) <
>>>>>> philip at frumph.net> wrote:
>>>>>>
>>>>>>   Okay so you have it "HALF” right .
>>>>>>
>>>>>> the second part of that is to have the BLOG LOOP on another PAGE
>>>>>>
>>>>>> get it yet?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Chip Bennett <chip at chipbennett.net>
>>>>>> *Sent:* Friday, September 13, 2013 7:14 PM
>>>>>>  *To:* Discussion list for WordPress theme reviewers.<theme-reviewers at lists.wordpress.org>
>>>>>> *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please -Badidea?
>>>>>>
>>>>>>   No, I think I have it exactly:
>>>>>>
>>>>>> "But I've had a lot of requests for options to hide certain sections
>>>>>> and one of them *was the blog feed on front page*."
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 10:12 PM, Philip M. Hofer (Frumph) <
>>>>>> philip at frumph.net> wrote:
>>>>>>
>>>>>>   Yeah, you’re not getting it.
>>>>>>
>>>>>> It’s not for the front page
>>>>>>
>>>>>>
>>>>>>
>>>>>>  *From:* Chip Bennett <chip at chipbennett.net>
>>>>>> *Sent:* Friday, September 13, 2013 7:11 PM
>>>>>>  *To:* Discussion list for WordPress theme reviewers.<theme-reviewers at lists.wordpress.org>
>>>>>>  *Subject:* Re: [theme-reviewers] Feedback on use of query_posts
>>>>>> please - Badidea?
>>>>>>
>>>>>>   index.php is NOT the front page template, and should not be used
>>>>>> as such. It is the default fallback template.
>>>>>>
>>>>>> Use front-page.php for your front page template, and home.php for
>>>>>> your blog posts index template. Then all of your issues go away, magically.
>>>>>> :)
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 9:48 PM, Zulfikar Nore <zulfikarnore at live.com
>>>>>> > wrote:
>>>>>>
>>>>>>  I'm using the index.php showing featured content at the top
>>>>>> followed by the blog feed - which works fine and I had planned to stick
>>>>>> with that. But I've had a lot of requests for options to hide certain
>>>>>> sections and one of them was the blog feed on front page.
>>>>>>
>>>>>> template.blog.php is to open the option to still have a page with the
>>>>>> blog feed on it when the user has opted to hide them on the front.
>>>>>>
>>>>>> Long story short - user hides posts on front but still wants a blog
>>>>>> fed page and this is my attempt to fill that need.
>>>>>>
>>>>>>  ------------------------------
>>>>>> Date: Fri, 13 Sep 2013 21:42:43 -0400
>>>>>> From: chip at chipbennett.net
>>>>>> To: theme-reviewers at lists.wordpress.org
>>>>>>
>>>>>> Subject: Re: [theme-reviewers] Feedback on use of query_posts please
>>>>>> - Bad idea?
>>>>>>
>>>>>>  Why do you need template-blog.php when there is home.php for
>>>>>> exactly that purpose?
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 13, 2013 at 8:22 PM, Zulfikar Nore <zulfikarnore at live.com
>>>>>> > wrote:
>>>>>>
>>>>>>  I've read around that using query_posts is bad but I've seen many a
>>>>>> themes using it and get away with it.
>>>>>>
>>>>>> My case is I'm trying to put together a template-blog.php for
>>>>>> StrapVert and this is what I've come up with so far:
>>>>>>
>>>>>>  add_filter('option_show_on_front', '__return_false');
>>>>>>   global $wp_query;
>>>>>>     query_posts(array(
>>>>>>   'paged' => $wp_query->get('paged'),
>>>>>>   'post__not_in' => get_option('sticky_posts'),
>>>>>>     ));
>>>>>>
>>>>>>   global $more; $more = 0;
>>>>>>     get_template_part('index-blog');
>>>>>>        $more = 1;
>>>>>> remove_filter('option_show_on_front', '__return_false');
>>>>>>
>>>>>>    wp_reset_query();
>>>>>> wp_reset_postdata();
>>>>>>
>>>>>> But before I add these changes to the theme and submit an update I'd
>>>>>> like some feedback on "How Really Bad" is query_posts and can I "get away"
>>>>>> with the above?
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Zulf
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>  ------------------------------
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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/20130915/b58b83a8/attachment-0001.html>


More information about the theme-reviewers mailing list