[wp-hackers] Skip Main Query
Michael D Adams
mda at blogwaffe.com
Sat Jul 31 08:18:18 UTC 2010
On Fri, Jul 30, 2010 at 3:54 PM, Theodor Ramisch
<theodor_ramisch at hotmail.com> wrote:
> No I've noticed that WordPress still queries the posts from the start page. Is there a way to avoid that?
The following plugin works for me in WP 3.0.
/*
Plugin Name: Kill Front Page Query
*/
function kill_front_page_query() {
add_filter( 'posts_request', 'kill_one_posts_request', 1000, 2 );
}
// apply_filters_ref_array() is a beautiful thing
function kill_one_posts_request( $sql, &$query ) {
// The main query is running on the front page
// And the currently running query is that main query
if ( is_front_page() && $query->is_home &&
$GLOBALS['wp_the_query']->is_home ) {
// We only want to do this once: remove the filter
remove_filter( 'posts_request', 'kill_one_posts_request', 1000 );
// Kill the FOUND_ROWS() query too
$query->query_vars['no_found_rows'] = true;
return ''; // Kill the query
}
return $sql;
}
add_filter( 'parse_request', 'kill_front_page_query' );
On the front page of a site with no fancy nav menu, I get one query
when viewing it logged out:
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'
Mike
--mdawaffe
More information about the wp-hackers
mailing list