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

Chip Bennett chip at chipbennett.net
Sat Sep 14 21:18:55 UTC 2013


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20130914/6ef0310d/attachment-0001.html>


More information about the theme-reviewers mailing list