From c3212d522ee4f1fa8128412f74c11942f879d090 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Fri, 30 Sep 2011 19:06:18 +0000 Subject: [PATCH] Avoid refetching a post in get_post() when passed a post object that has already been raw sanitized. Clean up sanitize loop. Props scribu. fixes #18822 git-svn-id: https://develop.svn.wordpress.org/trunk@18846 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/post.php | 2 ++ wp-includes/query.php | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/wp-includes/post.php b/wp-includes/post.php index 94f916ec70..994de88dc8 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -381,6 +381,8 @@ function &get_post(&$post, $output = OBJECT, $filter = 'raw') { _get_post_ancestors($post); $_post = sanitize_post($post, 'raw'); wp_cache_add($post->ID, $_post, 'posts'); + } elseif ( is_object($post) && 'raw' == $post->filter ) { + $_post = $post; } else { if ( is_object($post) ) $post_id = $post->ID; diff --git a/wp-includes/query.php b/wp-includes/query.php index 34864b94fa..1887a6f0a3 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -2745,9 +2745,9 @@ class WP_Query { $this->post_count = count($this->posts); - // Sanitize before caching so it'll only get done once - for ( $i = 0; $i < $this->post_count; $i++ ) { - $this->posts[$i] = sanitize_post($this->posts[$i], 'raw'); + // Always sanitize + foreach ( $this->posts as $i => $post ) { + $this->posts[$i] = sanitize_post( $post, 'raw' ); } if ( $q['cache_results'] )