WordPress.org

Make WordPress Core

Ticket #31746: 31746.diff

File 31746.diff, 1.1 KB (added by jtsternberg, 5 years ago)

Adds pre_get_blogs_of_user filter and sets a static variable to keep from re-fetching data

  • src/wp-includes/user.php

     
    11331133 */
    11341134function get_blogs_of_user( $user_id, $all = false ) {
    11351135        global $wpdb;
     1136        static $blogs = array();
    11361137
    11371138        $user_id = (int) $user_id;
    11381139
    11391140        // Logged out users can't have blogs
    1140         if ( empty( $user_id ) )
     1141        if ( empty( $user_id ) ) {
    11411142                return array();
     1143        }
    11421144
     1145        /**
     1146         * Filter a user's blogs array before it is retrieved.
     1147         *
     1148         * @since 4.1.3
     1149         *
     1150         * @param array $blogs   An array of blog objects belonging to the user. Default is an empty array.
     1151         * @param int   $user_id User ID.
     1152         * @param bool  $all     Whether the returned blogs array should contain all blogs, including
     1153         *                       those marked 'deleted', 'archived', or 'spam'. Default false.
     1154         */
     1155        $blogs = apply_filters( 'pre_get_blogs_of_user', $blogs, $user_id, $all );
     1156
     1157        if ( is_array( $blogs ) && ! empty( $blogs ) ) {
     1158                return $blogs;
     1159        }
     1160
    11431161        $keys = get_user_meta( $user_id );
    11441162        if ( empty( $keys ) )
    11451163                return array();