Multisite: Add `$network_id` parameter to `wp_update_network_site_counts()`.
Using the new parameter, it is now possible to update the site counts on a network different from the current network. Props PieWP, johnjamesjacoby. Fixes #37528. See #38699. git-svn-id: https://develop.svn.wordpress.org/trunk@40484 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ff25986f02
commit
9bf39fa0fc
|
@ -2329,21 +2329,25 @@ function wp_maybe_update_network_user_counts() {
|
||||||
* Update the network-wide site count.
|
* Update the network-wide site count.
|
||||||
*
|
*
|
||||||
* @since 3.7.0
|
* @since 3.7.0
|
||||||
|
* @since 4.8.0 The $network_id parameter has been added.
|
||||||
*
|
*
|
||||||
* @global wpdb $wpdb WordPress database abstraction object.
|
* @param int|null $network_id ID of the network. Default is the current network.
|
||||||
*/
|
*/
|
||||||
function wp_update_network_site_counts() {
|
function wp_update_network_site_counts( $network_id = null ) {
|
||||||
global $wpdb;
|
$network_id = (int) $network_id;
|
||||||
|
if ( ! $network_id ) {
|
||||||
|
$network_id = get_current_network_id();
|
||||||
|
}
|
||||||
|
|
||||||
$count = get_sites( array(
|
$count = get_sites( array(
|
||||||
'network_id' => $wpdb->siteid,
|
'network_id' => $network_id,
|
||||||
'spam' => 0,
|
'spam' => 0,
|
||||||
'deleted' => 0,
|
'deleted' => 0,
|
||||||
'archived' => 0,
|
'archived' => 0,
|
||||||
'count' => true,
|
'count' => true,
|
||||||
) );
|
) );
|
||||||
|
|
||||||
update_site_option( 'blog_count', $count );
|
update_network_option( $network_id, 'blog_count', $count );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -376,6 +376,38 @@ class Tests_Multisite_Network extends WP_UnitTestCase {
|
||||||
$dashboard_blog = get_dashboard_blog();
|
$dashboard_blog = get_dashboard_blog();
|
||||||
$this->assertEquals( $blog_id, $dashboard_blog->blog_id );
|
$this->assertEquals( $blog_id, $dashboard_blog->blog_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 37528
|
||||||
|
*/
|
||||||
|
function test_wp_update_network_site_counts() {
|
||||||
|
update_network_option( null, 'blog_count', 40 );
|
||||||
|
|
||||||
|
$expected = get_sites( array(
|
||||||
|
'network_id' => get_current_network_id(),
|
||||||
|
'spam' => 0,
|
||||||
|
'deleted' => 0,
|
||||||
|
'archived' => 0,
|
||||||
|
'count' => true,
|
||||||
|
) );
|
||||||
|
|
||||||
|
wp_update_network_site_counts();
|
||||||
|
|
||||||
|
$result = get_blog_count();
|
||||||
|
$this->assertEquals( $expected, $result );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 37528
|
||||||
|
*/
|
||||||
|
function test_wp_update_network_site_counts_on_different_network() {
|
||||||
|
update_network_option( self::$different_network_id, 'blog_count', 40 );
|
||||||
|
|
||||||
|
wp_update_network_site_counts( self::$different_network_id );
|
||||||
|
|
||||||
|
$result = get_blog_count( self::$different_network_id );
|
||||||
|
$this->assertEquals( 3, $result );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
Loading…
Reference in New Issue