Ticket #38741: 38741.10.diff
File 38741.10.diff, 16.2 KB (added by , 6 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-posts-list-table.php
1475 1475 <?php 1476 1476 endif; // $bulk 1477 1477 1478 if ( post_type_supports( $screen->post_type, 'author' ) ) :1478 if ( post_type_supports( $screen->post_type, 'author' ) && ! wp_is_large_user_count() ) : 1479 1479 $authors_dropdown = ''; 1480 1480 1481 1481 if ( current_user_can( $post_type_object->cap->edit_others_posts ) ) : -
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
1136 1136 'subdomain_install' => intval( $subdomain_install ), 1137 1137 'global_terms_enabled' => global_terms_enabled() ? '1' : '0', 1138 1138 'ms_files_rewriting' => is_multisite() ? get_site_option( 'ms_files_rewriting' ) : '0', 1139 'user_count' => get_site_option( 'user_count' ), 1139 1140 'initial_db_version' => get_option( 'initial_db_version' ), 1140 1141 'active_sitewide_plugins' => array(), 1141 1142 '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
6413 6413 } 6414 6414 } 6415 6415 } 6416 6417 /** 6418 * The number of active users in your installation. 6419 * 6420 * The count is cached and updated twice daily. This is not a live count. 6421 * 6422 * @since 5.0.0 6423 * 6424 * @return int Number of active users on the network. 6425 */ 6426 function wp_get_user_count() { 6427 return get_site_option( 'user_count', -1 ); 6428 } 6429 6430 /** 6431 * Update the network-wide users count. 6432 * 6433 * If enabled through the {@see 'enable_live_network_counts'} filter, update the users count 6434 * on a network when a user is created or its status is updated. 6435 * 6436 * @since 3.7.0 6437 * @since 4.8.0 The `$network_id` parameter has been added. 6438 * @since 5.0.0 Moved to functions.php 6439 * 6440 * @param int|null $network_id ID of the network. Default is the current network. 6441 * 6442 * @return bool 6443 */ 6444 function wp_maybe_update_network_user_counts( $network_id = null ) { 6445 $is_small_network = ! wp_is_large_user_count(); 6446 6447 if ( ! is_multisite() && $network_id ) { 6448 _doing_it_wrong( __FUNCTION__, __( 'Unable to pass $nework_id if not using multisite.' ), '5.0.0' ); 6449 } 6450 6451 /** This filter is documented in wp-includes/ms-functions.php */ 6452 if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'users' ) ) { 6453 return; 6454 } 6455 6456 return wp_update_network_user_counts( $network_id ); 6457 } 6458 6459 /** 6460 * Update the network-wide user count. 6461 * 6462 * @since 3.7.0 6463 * @since 4.8.0 The `$network_id` parameter has been added. 6464 * @since 5.0.0 Moved to functions.php 6465 * 6466 * @global wpdb $wpdb WordPress database abstraction object. 6467 * 6468 * @param int|null $network_id ID of the network. Default is the current network. 6469 * 6470 * @return bool 6471 */ 6472 function wp_update_network_user_counts( $network_id = null ) { 6473 global $wpdb; 6474 6475 if ( ! is_multisite() && $network_id ) { 6476 _doing_it_wrong( __FUNCTION__, __( 'Unable to pass $nework_id if not using multisite.' ), '5.0.0' ); 6477 } 6478 6479 if ( is_multisite() ) { 6480 $query = "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'"; 6481 } else { 6482 $query = "SELECT COUNT(ID) as c FROM $wpdb->users"; 6483 } 6484 6485 $count = $wpdb->get_var( $query ); 6486 6487 return update_network_option( $network_id, 'user_count', $count ); 6488 } 6489 6490 /** 6491 * Schedule update of the network-wide counts for the current network. 6492 * 6493 * @since 3.1.0 6494 * @since 5.0.0 Moved to functions.php 6495 */ 6496 function wp_schedule_update_network_counts() { 6497 if ( ! is_main_site() ) { 6498 return; 6499 } 6500 6501 if ( ! wp_next_scheduled( 'update_network_counts' ) && ! wp_installing() ) { 6502 wp_schedule_event( time(), 'twicedaily', 'update_network_counts' ); 6503 } 6504 } 6505 6506 /** 6507 * @since 5.0.0 6508 * 6509 * @return boolean 6510 */ 6511 function wp_is_large_user_count() { 6512 $count = wp_get_user_count(); 6513 6514 /** 6515 * Filters whether the site is considered large, based on its number of users. 6516 * 6517 * @since x.x.x 6518 * 6519 * @param bool $is_large_user_count Whether the site has more than 10000 users. 6520 * @param int $count The count of items for the component. 6521 */ 6522 return apply_filters( 'wp_is_large_user_count', $count > 10000, $count ); 6523 } 6524 No newline at end of file -
src/wp-includes/ms-default-filters.php
66 66 add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 3 ); 67 67 68 68 // Counts 69 add_action( 'admin_init', 'wp_schedule_update_network_counts' ); 70 add_action( 'update_network_counts', 'wp_update_network_counts', 10, 0 ); 71 foreach ( array( 'user_register', 'deleted_user', 'wpmu_new_user', 'make_spam_user', 'make_ham_user' ) as $action ) { 72 add_action( $action, 'wp_maybe_update_network_user_counts', 10, 0 ); 73 } 69 add_action( 'update_network_counts', 'wp_update_network_site_counts', 10, 0 ); 74 70 foreach ( array( 'make_spam_blog', 'make_ham_blog', 'archive_blog', 'unarchive_blog', 'make_delete_blog', 'make_undelete_blog' ) as $action ) { 75 71 add_action( $action, 'wp_maybe_update_network_site_counts', 10, 0 ); 76 72 } -
src/wp-includes/ms-deprecated.php
547 547 return isset( $current_user->$local_key ); 548 548 } 549 549 550 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 /** 551 569 * Store basic site info in the blogs table. 552 570 * 553 571 * This function creates a row in the wp_blogs table and returns -
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. … … 2414 2399 return $url; 2415 2400 } 2416 2401 2417 /**2418 * Schedule update of the network-wide counts for the current network.2419 *2420 * @since 3.1.02421 */2422 function wp_schedule_update_network_counts() {2423 if ( ! is_main_site() ) {2424 return;2425 }2426 2402 2427 if ( ! wp_next_scheduled( 'update_network_counts' ) && ! wp_installing() ) {2428 wp_schedule_event( time(), 'twicedaily', 'update_network_counts' );2429 }2430 }2431 2432 2403 /** 2433 2404 * Update the network-wide counts for the current network. 2434 2405 * … … 2474 2445 } 2475 2446 2476 2447 /** 2477 * Update the network-wide users count.2478 *2479 * If enabled through the {@see 'enable_live_network_counts'} filter, update the users count2480 * on a network when a user is created or its status is updated.2481 *2482 * @since 3.7.02483 * @since 4.8.0 The `$network_id` parameter has been added.2484 *2485 * @param int|null $network_id ID of the network. Default is the current network.2486 */2487 function wp_maybe_update_network_user_counts( $network_id = null ) {2488 $is_small_network = ! wp_is_large_network( 'users', $network_id );2489 2490 /** This filter is documented in wp-includes/ms-functions.php */2491 if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'users' ) ) {2492 return;2493 }2494 2495 wp_update_network_user_counts( $network_id );2496 }2497 2498 /**2499 2448 * Update the network-wide site count. 2500 2449 * 2501 2450 * @since 3.7.0 … … 2523 2472 } 2524 2473 2525 2474 /** 2526 * Update the network-wide user count.2527 *2528 * @since 3.7.02529 * @since 4.8.0 The `$network_id` parameter has been added.2530 *2531 * @global wpdb $wpdb WordPress database abstraction object.2532 *2533 * @param int|null $network_id ID of the network. Default is the current network.2534 */2535 function wp_update_network_user_counts( $network_id = null ) {2536 global $wpdb;2537 2538 $count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );2539 update_network_option( $network_id, 'user_count', $count );2540 }2541 2542 /**2543 2475 * Returns the space used by the current blog. 2544 2476 * 2545 2477 * @since 3.5.0 … … 2656 2588 * 2657 2589 * @since 3.3.0 2658 2590 * @since 4.8.0 The `$network_id` parameter has been added. 2591 * @since 5.0.0 Deprecated $network_id 2659 2592 * 2660 2593 * @param string $using 'sites or 'users'. Default is 'sites'. 2661 2594 * @param int|null $network_id ID of the network. Default is the current network. 2662 2595 * @return bool True if the network meets the criteria for large. False otherwise. 2663 2596 */ 2664 function wp_is_large_network( $using = 'sites', $network_id = null ) { 2665 $network_id = (int) $network_id; 2597 function wp_is_large_network( $using = 'sites', $deprecated = null ) { 2598 2599 if ( null !== $deprecated ) { 2600 _deprecated_argument( __FUNCTION__, __( 'Unable to pass $network_id. ' ), '5.0.0' ); 2601 } 2602 2603 $network_id = (int) $deprecated; 2666 2604 if ( ! $network_id ) { 2667 2605 $network_id = get_current_network_id(); 2668 2606 } 2669 2607 2670 2608 if ( 'users' == $using ) { 2671 $count = get_user_count( $network_id ); 2609 2610 $count = wp_get_user_count(); 2611 2612 /** This filter is documented in wp-includes/functions.php */ 2613 $is_large_network = apply_filters( 'wp_is_large_user_count', $count > 10000, $count ); 2614 2672 2615 /** 2673 2616 * Filters whether the network is considered large. 2674 2617 * … … 2680 2623 * @param int $count The count of items for the component. 2681 2624 * @param int $network_id The ID of the network being checked. 2682 2625 */ 2683 return apply_filters( 'wp_is_large_network', $ count > 10000, 'users', $count, $network_id );2626 return apply_filters( 'wp_is_large_network', $is_large_network, 'users', $count, $network_id ); 2684 2627 } 2685 2628 2686 $count = get_blog_count( $network_id);2629 $count = get_blog_count(); 2687 2630 /** This filter is documented in wp-includes/ms-functions.php */ 2688 2631 return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count, $network_id ); 2689 2632 } -
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( '/' );