WP_Query eliminate memory overflow
Whenever WP_Query() runs on big blogs with many posts, it takes lot of memory, so we get memory overflow.
$args = array(
'post_status' => 'publish',
'post_type' => array( 'post' ),
'posts_per_page' => -1
);
$query = null;
wp_reset_query();
$query = new WP_Query($args);
Why there is Memory Overflow?
WP_Query actually loads every matching post into memory, including the full post contents; and how smart WordPress is; it may also load meta data for every post as pre-fetch action. This easily leads to the memory overflow.
But there is a million dollars trick, where you pass 'fields' => 'ids' into WP_Query to simply return a list of IDs.
$args = array(
'post_status' => 'publish',
'post_type' => array( 'post' ),
'posts_per_page' => -1,
'fields' => 'ids'
);
$query = null;
wp_reset_query();
$query = new WP_Query($args);
Now, how is that for a memory trick.
…
tags: & category: -