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
This commit is contained in:
Andrew Nacin 2013-09-23 17:21:49 +00:00
parent 9297d23d5a
commit dec1c4d8f2
1 changed files with 13 additions and 5 deletions

View File

@ -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 );
}
/**