Make WordPress Core

Ticket #17025: 17025.12.wp_list_authors_args.diff

File 17025.12.wp_list_authors_args.diff, 7.8 KB (added by SergeyBiryukov, 2 years ago)
  • src/wp-includes/author-template.php

     
    450450                'include'       => '',
    451451        );
    452452
    453         $args = wp_parse_args( $args, $defaults );
     453        $parsed_args = wp_parse_args( $args, $defaults );
    454454
    455455        $return = '';
    456456
    457         $query_args           = wp_array_slice_assoc( $args, array( 'orderby', 'order', 'number', 'exclude', 'include' ) );
     457        $query_args           = wp_array_slice_assoc( $parsed_args, array( 'orderby', 'order', 'number', 'exclude', 'include' ) );
    458458        $query_args['fields'] = 'ids';
    459         $authors              = get_users( $query_args );
    460459
     460        /**
     461         * Filters the query arguments for the list of all authors of the site.
     462         *
     463         * @since 6.1.0
     464         *
     465         * @param array $query_args  The query arguments for get_users().
     466         * @param array $parsed_args The arguments passed to wp_list_authors() combined with the defaults.
     467         */
     468        $query_args = apply_filters( 'wp_list_authors_args', $query_args, $parsed_args );
     469
     470        $authors = get_users( $query_args );
     471
    461472        $author_count = array();
    462         foreach ( (array) $wpdb->get_results( "SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE " . get_private_posts_cap_sql( 'post' ) . ' GROUP BY post_author' ) as $row ) {
     473        $rows         = $wpdb->get_results(
     474                "SELECT DISTINCT post_author, COUNT(ID) AS count
     475                FROM $wpdb->posts
     476                WHERE " . get_private_posts_cap_sql( 'post' ) . '
     477                GROUP BY post_author'
     478        );
     479
     480        foreach ( (array) $rows as $row ) {
    463481                $author_count[ $row->post_author ] = $row->count;
    464482        }
     483
    465484        foreach ( $authors as $author_id ) {
    466485                $posts = isset( $author_count[ $author_id ] ) ? $author_count[ $author_id ] : 0;
    467486
    468                 if ( ! $posts && $args['hide_empty'] ) {
     487                if ( ! $posts && $parsed_args['hide_empty'] ) {
    469488                        continue;
    470489                }
    471490
    472491                $author = get_userdata( $author_id );
    473492
    474                 if ( $args['exclude_admin'] && 'admin' === $author->display_name ) {
     493                if ( $parsed_args['exclude_admin'] && 'admin' === $author->display_name ) {
    475494                        continue;
    476495                }
    477496
    478                 if ( $args['show_fullname'] && $author->first_name && $author->last_name ) {
     497                if ( $parsed_args['show_fullname'] && $author->first_name && $author->last_name ) {
    479498
    480499                        $full_name = $author->first_name . ' ' . $author->last_name;
    481500
     
    494513                        $name = $author->display_name;
    495514                }
    496515
    497                 if ( ! $args['html'] ) {
     516                if ( ! $parsed_args['html'] ) {
    498517                        $return .= $name . ', ';
    499518
    500519                        continue; // No need to go further to process HTML.
    501520                }
    502521
    503                 if ( 'list' === $args['style'] ) {
     522                if ( 'list' === $parsed_args['style'] ) {
    504523                        $return .= '<li>';
    505524                }
    506525
     
    512531                        $name
    513532                );
    514533
    515                 if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
     534                if ( ! empty( $parsed_args['feed_image'] ) || ! empty( $parsed_args['feed'] ) ) {
    516535                        $link .= ' ';
    517                         if ( empty( $args['feed_image'] ) ) {
     536                        if ( empty( $parsed_args['feed_image'] ) ) {
    518537                                $link .= '(';
    519538                        }
    520539
    521                         $link .= '<a href="' . get_author_feed_link( $author->ID, $args['feed_type'] ) . '"';
     540                        $link .= '<a href="' . get_author_feed_link( $author->ID, $parsed_args['feed_type'] ) . '"';
    522541
    523542                        $alt = '';
    524                         if ( ! empty( $args['feed'] ) ) {
    525                                 $alt  = ' alt="' . esc_attr( $args['feed'] ) . '"';
    526                                 $name = $args['feed'];
     543                        if ( ! empty( $parsed_args['feed'] ) ) {
     544                                $alt  = ' alt="' . esc_attr( $parsed_args['feed'] ) . '"';
     545                                $name = $parsed_args['feed'];
    527546                        }
    528547
    529548                        $link .= '>';
    530549
    531                         if ( ! empty( $args['feed_image'] ) ) {
    532                                 $link .= '<img src="' . esc_url( $args['feed_image'] ) . '" style="border: none;"' . $alt . ' />';
     550                        if ( ! empty( $parsed_args['feed_image'] ) ) {
     551                                $link .= '<img src="' . esc_url( $parsed_args['feed_image'] ) . '" style="border: none;"' . $alt . ' />';
    533552                        } else {
    534553                                $link .= $name;
    535554                        }
     
    536555
    537556                        $link .= '</a>';
    538557
    539                         if ( empty( $args['feed_image'] ) ) {
     558                        if ( empty( $parsed_args['feed_image'] ) ) {
    540559                                $link .= ')';
    541560                        }
    542561                }
    543562
    544                 if ( $args['optioncount'] ) {
     563                if ( $parsed_args['optioncount'] ) {
    545564                        $link .= ' (' . $posts . ')';
    546565                }
    547566
    548567                $return .= $link;
    549                 $return .= ( 'list' === $args['style'] ) ? '</li>' : ', ';
     568                $return .= ( 'list' === $parsed_args['style'] ) ? '</li>' : ', ';
    550569        }
    551570
    552571        $return = rtrim( $return, ', ' );
    553572
    554         if ( $args['echo'] ) {
     573        if ( $parsed_args['echo'] ) {
    555574                echo $return;
    556575        } else {
    557576                return $return;
  • src/wp-includes/user.php

     
    811811                'include'       => '',
    812812        );
    813813
    814         $args = wp_parse_args( $args, $defaults );
     814        $parsed_args = wp_parse_args( $args, $defaults );
    815815
    816816        $return = '';
    817817
    818         $query_args           = wp_array_slice_assoc( $args, array( 'orderby', 'order', 'number', 'exclude', 'include' ) );
     818        $query_args           = wp_array_slice_assoc( $parsed_args, array( 'orderby', 'order', 'number', 'exclude', 'include' ) );
    819819        $query_args['fields'] = 'ids';
    820         $users                = get_users( $query_args );
    821820
     821        /**
     822         * Filters the query arguments for the list of all users of the site.
     823         *
     824         * @since 6.1.0
     825         *
     826         * @param array $query_args  The query arguments for get_users().
     827         * @param array $parsed_args The arguments passed to wp_list_users() combined with the defaults.
     828         */
     829        $query_args = apply_filters( 'wp_list_users_args', $query_args, $parsed_args );
     830
     831        $users = get_users( $query_args );
     832
    822833        foreach ( $users as $user_id ) {
    823834                $user = get_userdata( $user_id );
    824835
    825                 if ( $args['exclude_admin'] && 'admin' === $user->display_name ) {
     836                if ( $parsed_args['exclude_admin'] && 'admin' === $user->display_name ) {
    826837                        continue;
    827838                }
    828839
    829                 if ( $args['show_fullname'] && '' !== $user->first_name && '' !== $user->last_name ) {
     840                if ( $parsed_args['show_fullname'] && '' !== $user->first_name && '' !== $user->last_name ) {
    830841                        $name = "$user->first_name $user->last_name";
    831842                } else {
    832843                        $name = $user->display_name;
    833844                }
    834845
    835                 if ( ! $args['html'] ) {
     846                if ( ! $parsed_args['html'] ) {
    836847                        $return .= $name . ', ';
    837848
    838849                        continue; // No need to go further to process HTML.
    839850                }
    840851
    841                 if ( 'list' === $args['style'] ) {
     852                if ( 'list' === $parsed_args['style'] ) {
    842853                        $return .= '<li>';
    843854                }
    844855
    845856                $row = $name;
    846857
    847                 if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
     858                if ( ! empty( $parsed_args['feed_image'] ) || ! empty( $parsed_args['feed'] ) ) {
    848859                        $row .= ' ';
    849                         if ( empty( $args['feed_image'] ) ) {
     860                        if ( empty( $parsed_args['feed_image'] ) ) {
    850861                                $row .= '(';
    851862                        }
    852863
    853                         $row .= '<a href="' . get_author_feed_link( $user->ID, $args['feed_type'] ) . '"';
     864                        $row .= '<a href="' . get_author_feed_link( $user->ID, $parsed_args['feed_type'] ) . '"';
    854865
    855866                        $alt = '';
    856                         if ( ! empty( $args['feed'] ) ) {
    857                                 $alt  = ' alt="' . esc_attr( $args['feed'] ) . '"';
    858                                 $name = $args['feed'];
     867                        if ( ! empty( $parsed_args['feed'] ) ) {
     868                                $alt  = ' alt="' . esc_attr( $parsed_args['feed'] ) . '"';
     869                                $name = $parsed_args['feed'];
    859870                        }
    860871
    861872                        $row .= '>';
    862873
    863                         if ( ! empty( $args['feed_image'] ) ) {
    864                                 $row .= '<img src="' . esc_url( $args['feed_image'] ) . '" style="border: none;"' . $alt . ' />';
     874                        if ( ! empty( $parsed_args['feed_image'] ) ) {
     875                                $row .= '<img src="' . esc_url( $parsed_args['feed_image'] ) . '" style="border: none;"' . $alt . ' />';
    865876                        } else {
    866877                                $row .= $name;
    867878                        }
     
    868879
    869880                        $row .= '</a>';
    870881
    871                         if ( empty( $args['feed_image'] ) ) {
     882                        if ( empty( $parsed_args['feed_image'] ) ) {
    872883                                $row .= ')';
    873884                        }
    874885                }
    875886
    876887                $return .= $row;
    877                 $return .= ( 'list' === $args['style'] ) ? '</li>' : ', ';
     888                $return .= ( 'list' === $parsed_args['style'] ) ? '</li>' : ', ';
    878889        }
    879890
    880891        $return = rtrim( $return, ', ' );
    881892
    882         if ( ! $args['echo'] ) {
     893        if ( ! $parsed_args['echo'] ) {
    883894                return $return;
    884895        }
    885896        echo $return;