[wp-hackers] get_post() not fetching from post cache after update_post_caches()
otto at ottodestruct.com
Mon Oct 5 14:14:41 UTC 2009
"numberposts" only works with the get_posts call, not with a WP_Query object.
A WP_Query expects either "posts_per_page" or "showposts" (which is
deprecated) for the number of posts.
Setting posts_per_page to -1 will have the same effect as setting
nopaging to true. Either will eliminate the LIMIT section entirely,
making it return all posts.
And yes, if you fail to specify a parameter, then it'll take it from defaults.
On Sun, Oct 4, 2009 at 1:04 PM, William Canino
<william.canino at googlemail.com> wrote:
> Hello all,
>> $my_query = new WP_Query(array('post__in' => array([very long array of post IDs])));
>> echo $get_permalink(1);
>> echo $get_the_title(2);
>> Do you know why WordPress is still making SQL
>> queries on lines 3 and 4? Shouldn't they be already in
>> the object cache?
> I found the answer ... and subsequently found an irregularity in the
> WordPress core. I don't know if I should call it a bug.
> get_posts is automatically adding "LIMIT 0, 6" to the SQL statement. 6
> is the number of posts per page set in the blog's Reading settings.
> That's why posts 1 and 2 are not in the object cache. Furthermore,
> adding either of the following
> 'numberposts' => -1 // as per Codex
> 'nopaging' => true // as per Codex
> to the call, such as, $my_query = new WP_Query(array('post__in' =>
> [very long array of post IDs], 'nopaging' => true)); makes no
> I opened WordPress's query.php and examined it, and found what I had to use:
> new WP_Query(array('post__in' => [very long array of post IDs],
> 'posts_per_page' => 100000));
> or some high number. This is the solution.
> Moral of the Story: If one uses WP_Query for one's ends, he must set
> all the parameters he needs so that the custom WP_Query doesn't use
> the blog's settings.
> Is this an irregularity or is this a bug?
> 2009/10/2 Otto <otto at ottodestruct.com>:
>> That's fine, but it still doesn't show the actual contents of the
>> cache. You're going to have to dump the cache before and after the
>> get_the_title call to see why it's missing.
>> Sent from Memphis, TN, United States
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.com
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
More information about the wp-hackers