From dec1c4d8f2af21e143efd66a497ef6e74cb2201e Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Mon, 23 Sep 2013 17:21:49 +0000 Subject: [PATCH] Set up author data for the author template immediately, rather than waiting for the first the_post() call. This removes the need to call the_post() and rewind_posts() in an author template to print information about the author. props obenland. fixes #14408. git-svn-id: https://develop.svn.wordpress.org/trunk@25574 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/class-wp.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/class-wp.php b/src/wp-includes/class-wp.php index dc77688650..56a5561f13 100644 --- a/src/wp-includes/class-wp.php +++ b/src/wp-includes/class-wp.php @@ -441,27 +441,35 @@ class WP { * WordPress environment. * * @global string $query_string Query string for the loop. + * @global array $posts The found posts. + * @global WP_Post|null $post The current post, if available. + * @global string $request The SQL statement for the request. * @global int $more Only set, if single page or post. * @global int $single If single page or post. Only set, if single page or post. + * @global WP_User $authordata Only set, if author archive. * * @since 2.0.0 */ function register_globals() { global $wp_query; + // Extract updated query vars back into global namespace. - foreach ( (array) $wp_query->query_vars as $key => $value) { - $GLOBALS[$key] = $value; + foreach ( (array) $wp_query->query_vars as $key => $value ) { + $GLOBALS[ $key ] = $value; } $GLOBALS['query_string'] = $this->query_string; $GLOBALS['posts'] = & $wp_query->posts; - $GLOBALS['post'] = (isset($wp_query->post)) ? $wp_query->post : null; + $GLOBALS['post'] = isset( $wp_query->post ) ? $wp_query->post : null; $GLOBALS['request'] = $wp_query->request; - if ( is_single() || is_page() ) { - $GLOBALS['more'] = 1; + if ( $wp_query->is_single() || $wp_query->is_page() ) { + $GLOBALS['more'] = 1; $GLOBALS['single'] = 1; } + + if ( $wp_query->is_author() && $wp_query->post ) + $GLOBALS['authordata'] = get_userdata( $wp_query->post->post_author ); } /**