From 774dceac30be9b2e6f652cee924c582ceae01894 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Wed, 17 Apr 2019 14:49:49 +0000 Subject: [PATCH] Users: In `wp_list_authors()`, check for author's post count before getting author's metadata. This significantly reduces the number of SQL queries when `wp_list_authors()` is called on a site where the majority of users don't have any posts, e.g. a membership site. Props billerickson, ianbelanger, dswebsme. Fixes #45105. git-svn-id: https://develop.svn.wordpress.org/trunk@45235 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/author-template.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/wp-includes/author-template.php b/src/wp-includes/author-template.php index 3f49f93d14..4c4ea32ffb 100644 --- a/src/wp-includes/author-template.php +++ b/src/wp-includes/author-template.php @@ -442,15 +442,15 @@ function wp_list_authors( $args = '' ) { $author_count[ $row->post_author ] = $row->count; } foreach ( $authors as $author_id ) { - $author = get_userdata( $author_id ); + $posts = isset( $author_count[ $author_id ] ) ? $author_count[ $author_id ] : 0; - if ( $args['exclude_admin'] && 'admin' == $author->display_name ) { + if ( ! $posts && $args['hide_empty'] ) { continue; } - $posts = isset( $author_count[ $author->ID ] ) ? $author_count[ $author->ID ] : 0; + $author = get_userdata( $author_id ); - if ( ! $posts && $args['hide_empty'] ) { + if ( $args['exclude_admin'] && 'admin' === $author->display_name ) { continue; }