Cache get_adjacent_post() queries for the duration of the page load to avoid running queries multiple times
git-svn-id: http://svn.automattic.com/wordpress/trunk@11241 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
66fa9d7da3
commit
2644391146
|
@ -868,7 +868,7 @@ function get_next_post($in_same_cat = false, $excluded_categories = '') {
|
|||
function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $previous = true) {
|
||||
global $post, $wpdb;
|
||||
|
||||
if( empty($post) || !is_single() || is_attachment() )
|
||||
if ( empty($post) || !is_single() || is_attachment() )
|
||||
return null;
|
||||
|
||||
$current_post_date = $post->post_date;
|
||||
|
@ -905,7 +905,15 @@ function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $pre
|
|||
$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = 'post' AND p.post_status = 'publish' $posts_in_ex_cats_sql", $current_post_date), $in_same_cat, $excluded_categories );
|
||||
$sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" );
|
||||
|
||||
return $wpdb->get_row("SELECT p.* FROM $wpdb->posts AS p $join $where $sort");
|
||||
$query = "SELECT p.* FROM $wpdb->posts AS p $join $where $sort";
|
||||
$query_key = 'adjacent_post_' . md5($query);
|
||||
$result = wp_cache_get($query_key, 'counts');
|
||||
if ( false !== $result )
|
||||
return $result;
|
||||
|
||||
$result = $wpdb->get_row("SELECT p.* FROM $wpdb->posts AS p $join $where $sort");
|
||||
wp_cache_set($query_key, $result, 'counts');
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue