Merging multiple wp_query objects

If you just need the posts of each WP_Query object, you can do do something like this: <?php // fetch blogs here $all_posts = array() foreach($blogs as $b) { switch_to_blog($b->blog_id); $query = new WP_Query(/* your args here */); if($query->have_posts()) $all_posts = array_merge($all_posts, $query->posts); // posts are stored in the `posts` property restore_current_blog(); // FYI: this … Read more

Tracing the life of a query

Well you can try and run debug_backtrace(); on your function. For example: function wpse_82183_debug( $query ) { //your query goes here, this is just a basic one if ( $query->is_home() && $query->is_main_query() ) { $query->set( ‘posts_per_page’, 1 ); //magic happens here var_dump(debug_backtrace()); } } add_action( ‘pre_get_posts’, ‘wpse_82183_debug’ ); There are also a number of plugins … Read more

How to place a loop within another loop?

Try this: We declare an incrementer at the top of our outter loop called $popularLoop to keep track of how many popular loops we’ve been through, we assume we’re going to at least hit 1. Inside our Inner Loop (popular) we need to set how many posts per page we’re going to load, multiple that … Read more