Ticket #38741: 38741.9.diff
File 38741.9.diff, 15.6 KB (added by , 7 years ago) |
---|
-
src/wp-admin/includes/class-wp-ms-users-list-table.php
133 133 protected function get_views() { 134 134 global $role; 135 135 136 $total_users = get_user_count();136 $total_users = wp_get_user_count(); 137 137 $super_admins = get_super_admins(); 138 138 $total_admins = count( $super_admins ); 139 139 -
src/wp-admin/includes/class-wp-users-list-table.php
177 177 178 178 $wp_roles = wp_roles(); 179 179 180 $count_users = ! wp_is_large_user_count(); 181 180 182 if ( $this->is_site_users ) { 181 183 $url = 'site-users.php?id=' . $this->site_id; 182 switch_to_blog( $this->site_id );183 $users_of_blog = count_users( 'time', $this->site_id );184 restore_current_blog();185 184 } else { 186 $url = 'users.php'; 187 $users_of_blog = count_users(); 185 $url = 'users.php'; 188 186 } 189 187 190 $total_users = $users_of_blog['total_users']; 191 $avail_roles =& $users_of_blog['avail_roles']; 192 unset( $users_of_blog ); 188 $role_links = array(); 189 if ( $count_users ) { 190 if ( $this->is_site_users ) { 191 switch_to_blog( $this->site_id ); 192 $users_of_blog = count_users( 'time', $this->site_id ); 193 restore_current_blog(); 194 } else { 195 $users_of_blog = count_users(); 196 } 193 197 198 $total_users = $users_of_blog['total_users']; 199 $avail_roles =& $users_of_blog['avail_roles']; 200 unset( $users_of_blog ); 201 $role_links['all'] = "<a href='$url'$current_link_attributes>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>'; 202 } else { 203 $avail_roles = array(); 204 $role_links['all'] = "<a href='$url'$current_link_attributes>" . __( 'All' ) . '</a>'; 205 } 206 194 207 $current_link_attributes = empty( $role ) ? ' class="current" aria-current="page"' : ''; 195 196 $role_links = array();197 $role_links['all'] = "<a href='$url'$current_link_attributes>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';198 208 foreach ( $wp_roles->get_names() as $this_role => $name ) { 199 if ( ! isset( $avail_roles[ $this_role ] ) ) {209 if ( $count_users && ! isset( $avail_roles[ $this_role ] ) ) { 200 210 continue; 201 211 } 202 212 … … 208 218 209 219 $name = translate_user_role( $name ); 210 220 /* translators: User role name with count */ 211 $name = sprintf( __( '%1$s <span class="count">(%2$s)</span>' ), $name, number_format_i18n( $avail_roles[ $this_role ] ) ); 221 if ( $count_users ) { 222 $name = sprintf( __( '%1$s <span class="count">(%2$s)</span>' ), $name, number_format_i18n( $avail_roles[ $this_role ] ) ); 223 } 212 224 $role_links[ $this_role ] = "<a href='" . esc_url( add_query_arg( 'role', $this_role, $url ) ) . "'$current_link_attributes>$name</a>"; 213 225 } 214 226 -
src/wp-admin/includes/dashboard.php
408 408 $actions['create-user'] = '<a href="' . network_admin_url( 'user-new.php' ) . '">' . __( 'Create a New User' ) . '</a>'; 409 409 } 410 410 411 $c_users = get_user_count();411 $c_users = wp_get_user_count(); 412 412 $c_blogs = get_blog_count(); 413 413 414 414 /* translators: %s: number of users on the network */ -
src/wp-admin/includes/schema.php
1133 1133 'subdomain_install' => intval( $subdomain_install ), 1134 1134 'global_terms_enabled' => global_terms_enabled() ? '1' : '0', 1135 1135 'ms_files_rewriting' => is_multisite() ? get_site_option( 'ms_files_rewriting' ) : '0', 1136 'user_count' => get_site_option( 'user_count' ), 1136 1137 'initial_db_version' => get_option( 'initial_db_version' ), 1137 1138 'active_sitewide_plugins' => array(), 1138 1139 'WPLANG' => get_locale(), -
src/wp-includes/default-filters.php
98 98 // Meta 99 99 add_filter( 'register_meta_args', '_wp_register_meta_args_whitelist', 10, 2 ); 100 100 101 // Counts 102 add_action( 'admin_init', 'wp_schedule_update_network_counts' ); 103 add_action( 'update_network_counts', 'wp_update_network_user_counts', 10, 0 ); 104 foreach ( array( 'user_register', 'deleted_user', 'wpmu_new_user', 'make_spam_user', 'make_ham_user' ) as $action ) { 105 add_action( $action, 'wp_maybe_update_network_user_counts', 10, 0 ); 106 } 107 101 108 // Places to balance tags on input 102 109 foreach ( array( 'content_save_pre', 'excerpt_save_pre', 'comment_save_pre', 'pre_comment_content' ) as $filter ) { 103 110 add_filter( $filter, 'convert_invalid_entities' ); -
src/wp-includes/functions.php
6346 6346 } 6347 6347 } 6348 6348 } 6349 6350 /** 6351 * The number of active users in your installation. 6352 * 6353 * The count is cached and updated twice daily. This is not a live count. 6354 * 6355 * @since 5.0.0 6356 * 6357 * @return int Number of active users on the network. 6358 */ 6359 function wp_get_user_count() { 6360 return get_site_option( 'user_count', -1 ); 6361 } 6362 6363 /** 6364 * Update the network-wide users count. 6365 * 6366 * If enabled through the {@see 'enable_live_network_counts'} filter, update the users count 6367 * on a network when a user is created or its status is updated. 6368 * 6369 * @since 3.7.0 6370 * @since 4.8.0 The `$network_id` parameter has been added. 6371 * @since 5.0.0 Moved to functions.php 6372 * 6373 * @param int|null $network_id ID of the network. Default is the current network. 6374 * 6375 * @return bool 6376 */ 6377 function wp_maybe_update_network_user_counts( $network_id = null ) { 6378 $is_small_network = ! wp_is_large_user_count(); 6379 6380 if ( ! is_multisite() && $network_id ) { 6381 _doing_it_wrong( __FUNCTION__, __( 'Unable to pass $nework_id if not using multisite.' ), '5.0.0' ); 6382 } 6383 6384 /** This filter is documented in wp-includes/ms-functions.php */ 6385 if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'users' ) ) { 6386 return; 6387 } 6388 6389 return wp_update_network_user_counts( $network_id ); 6390 } 6391 6392 /** 6393 * Update the network-wide user count. 6394 * 6395 * @since 3.7.0 6396 * @since 4.8.0 The `$network_id` parameter has been added. 6397 * @since 5.0.0 Moved to functions.php 6398 * 6399 * @global wpdb $wpdb WordPress database abstraction object. 6400 * 6401 * @param int|null $network_id ID of the network. Default is the current network. 6402 * 6403 * @return bool 6404 */ 6405 function wp_update_network_user_counts( $network_id = null ) { 6406 global $wpdb; 6407 6408 if ( ! is_multisite() && $network_id ) { 6409 _doing_it_wrong( __FUNCTION__, __( 'Unable to pass $nework_id if not using multisite.' ), '5.0.0' ); 6410 } 6411 6412 if ( is_multisite() ) { 6413 $query = "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'"; 6414 } else { 6415 $query = "SELECT COUNT(ID) as c FROM $wpdb->users"; 6416 } 6417 6418 $count = $wpdb->get_var( $query ); 6419 6420 return update_network_option( $network_id, 'user_count', $count ); 6421 } 6422 6423 /** 6424 * Schedule update of the network-wide counts for the current network. 6425 * 6426 * @since 3.1.0 6427 * @since 5.0.0 Moved to functions.php 6428 */ 6429 function wp_schedule_update_network_counts() { 6430 if ( ! is_main_site() ) { 6431 return; 6432 } 6433 6434 if ( ! wp_next_scheduled( 'update_network_counts' ) && ! wp_installing() ) { 6435 wp_schedule_event( time(), 'twicedaily', 'update_network_counts' ); 6436 } 6437 } 6438 6439 /** 6440 * @since 5.0.0 6441 * 6442 * @return boolean 6443 */ 6444 function wp_is_large_user_count() { 6445 $count = wp_get_user_count(); 6446 6447 /** 6448 * Filters whether the site is considered large, based on its number of users. 6449 * 6450 * @since x.x.x 6451 * 6452 * @param bool $is_large_user_count Whether the site has more than 10000 users. 6453 * @param int $count The count of items for the component. 6454 */ 6455 return apply_filters( 'wp_is_large_user_count', $count > 10000, $count ); 6456 } 6457 No newline at end of file -
src/wp-includes/ms-default-filters.php
57 57 add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 3 ); 58 58 59 59 // Counts 60 add_action( 'admin_init', 'wp_schedule_update_network_counts' ); 61 add_action( 'update_network_counts', 'wp_update_network_counts', 10, 0 ); 62 foreach ( array( 'user_register', 'deleted_user', 'wpmu_new_user', 'make_spam_user', 'make_ham_user' ) as $action ) { 63 add_action( $action, 'wp_maybe_update_network_user_counts', 10, 0 ); 64 } 60 add_action( 'update_network_counts', 'wp_update_network_site_counts', 10, 0 ); 65 61 foreach ( array( 'make_spam_blog', 'make_ham_blog', 'archive_blog', 'unarchive_blog', 'make_delete_blog', 'make_undelete_blog' ) as $action ) { 66 62 add_action( $action, 'wp_maybe_update_network_site_counts', 10, 0 ); 67 63 } -
src/wp-includes/ms-deprecated.php
546 546 547 547 return isset( $current_user->$local_key ); 548 548 } 549 550 551 /** 552 * The number of active users in your installation. 553 * 554 * The count is cached and updated twice daily. This is not a live count. 555 * 556 * @since MU (3.0.0) 557 * @since 4.8.0 The `$network_id` parameter has been added. 558 * @deprecated 4.9.0 559 * 560 * @param int|null $network_id ID of the network. Default is the current network. 561 * @return int Number of active users on the network. 562 */ 563 function get_user_count( $network_id = null ) { 564 _deprecated_function( __FUNCTION__, '5.0.0', 'wp_get_user_count()' ); 565 566 return get_network_option( $network_id, 'user_count' ); 567 } 568 No newline at end of file -
src/wp-includes/ms-functions.php
17 17 function get_sitestats() { 18 18 $stats = array( 19 19 'blogs' => get_blog_count(), 20 'users' => get_user_count(),20 'users' => wp_get_user_count(), 21 21 ); 22 22 23 23 return $stats; … … 96 96 } 97 97 98 98 /** 99 * The number of active users in your installation.100 *101 * The count is cached and updated twice daily. This is not a live count.102 *103 * @since MU (3.0.0)104 * @since 4.8.0 The `$network_id` parameter has been added.105 *106 * @param int|null $network_id ID of the network. Default is the current network.107 * @return int Number of active users on the network.108 */109 function get_user_count( $network_id = null ) {110 return get_network_option( $network_id, 'user_count' );111 }112 113 /**114 99 * The number of active sites on your installation. 115 100 * 116 101 * The count is cached and updated twice daily. This is not a live count. … … 2446 2431 return $url; 2447 2432 } 2448 2433 2449 /**2450 * Schedule update of the network-wide counts for the current network.2451 *2452 * @since 3.1.02453 */2454 function wp_schedule_update_network_counts() {2455 if ( ! is_main_site() ) {2456 return;2457 }2458 2434 2459 if ( ! wp_next_scheduled( 'update_network_counts' ) && ! wp_installing() ) {2460 wp_schedule_event( time(), 'twicedaily', 'update_network_counts' );2461 }2462 }2463 2464 2435 /** 2465 2436 * Update the network-wide counts for the current network. 2466 2437 * … … 2506 2477 } 2507 2478 2508 2479 /** 2509 * Update the network-wide users count.2510 *2511 * If enabled through the {@see 'enable_live_network_counts'} filter, update the users count2512 * on a network when a user is created or its status is updated.2513 *2514 * @since 3.7.02515 * @since 4.8.0 The `$network_id` parameter has been added.2516 *2517 * @param int|null $network_id ID of the network. Default is the current network.2518 */2519 function wp_maybe_update_network_user_counts( $network_id = null ) {2520 $is_small_network = ! wp_is_large_network( 'users', $network_id );2521 2522 /** This filter is documented in wp-includes/ms-functions.php */2523 if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'users' ) ) {2524 return;2525 }2526 2527 wp_update_network_user_counts( $network_id );2528 }2529 2530 /**2531 2480 * Update the network-wide site count. 2532 2481 * 2533 2482 * @since 3.7.0 … … 2555 2504 } 2556 2505 2557 2506 /** 2558 * Update the network-wide user count.2559 *2560 * @since 3.7.02561 * @since 4.8.0 The `$network_id` parameter has been added.2562 *2563 * @global wpdb $wpdb WordPress database abstraction object.2564 *2565 * @param int|null $network_id ID of the network. Default is the current network.2566 */2567 function wp_update_network_user_counts( $network_id = null ) {2568 global $wpdb;2569 2570 $count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );2571 update_network_option( $network_id, 'user_count', $count );2572 }2573 2574 /**2575 2507 * Returns the space used by the current blog. 2576 2508 * 2577 2509 * @since 3.5.0 … … 2688 2620 * 2689 2621 * @since 3.3.0 2690 2622 * @since 4.8.0 The `$network_id` parameter has been added. 2623 * @since 5.0.0 Deprecated $network_id 2691 2624 * 2692 2625 * @param string $using 'sites or 'users'. Default is 'sites'. 2693 2626 * @param int|null $network_id ID of the network. Default is the current network. 2694 2627 * @return bool True if the network meets the criteria for large. False otherwise. 2695 2628 */ 2696 function wp_is_large_network( $using = 'sites', $network_id = null ) { 2697 $network_id = (int) $network_id; 2629 function wp_is_large_network( $using = 'sites', $deprecated = null ) { 2630 2631 if ( null !== $deprecated ) { 2632 _deprecated_argument( __FUNCTION__, __( 'Unable to pass $network_id. ' ), '5.0.0' ); 2633 } 2634 2635 $network_id = (int) $deprecated; 2698 2636 if ( ! $network_id ) { 2699 2637 $network_id = get_current_network_id(); 2700 2638 } 2701 2639 2702 2640 if ( 'users' == $using ) { 2703 $count = get_user_count( $network_id ); 2641 2642 $count = wp_get_user_count(); 2643 2644 /** This filter is documented in wp-includes/functions.php */ 2645 $is_large_network = apply_filters( 'wp_is_large_user_count', $count > 10000, $count ); 2646 2704 2647 /** 2705 2648 * Filters whether the network is considered large. 2706 2649 * … … 2712 2655 * @param int $count The count of items for the component. 2713 2656 * @param int $network_id The ID of the network being checked. 2714 2657 */ 2715 return apply_filters( 'wp_is_large_network', $ count > 10000, 'users', $count, $network_id );2658 return apply_filters( 'wp_is_large_network', $is_large_network, 'users', $count, $network_id ); 2716 2659 } 2717 2660 2718 $count = get_blog_count( $network_id);2661 $count = get_blog_count(); 2719 2662 /** This filter is documented in wp-includes/ms-functions.php */ 2720 2663 return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count, $network_id ); 2721 2664 } -
src/wp-includes/update.php
75 75 $mysql_version = 'N/A'; 76 76 } 77 77 78 $user_count = wp_get_user_count(); 78 79 if ( is_multisite() ) { 79 $user_count = get_user_count();80 80 $num_blogs = get_blog_count(); 81 81 $wp_install = network_site_url(); 82 82 $multisite_enabled = 1; 83 83 } else { 84 $user_count = count_users();85 $user_count = $user_count['total_users'];86 84 $multisite_enabled = 0; 87 85 $num_blogs = 1; 88 86 $wp_install = home_url( '/' );