Make WordPress Core

Changeset 40484


Ignore:
Timestamp:
04/19/2017 11:59:16 PM (7 years ago)
Author:
flixos90
Message:

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.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ms-functions.php

    r40391 r40484  
    23302330 *
    23312331 * @since 3.7.0
    2332  *
    2333  * @global wpdb $wpdb WordPress database abstraction object.
    2334  */
    2335 function wp_update_network_site_counts() {
    2336     global $wpdb;
     2332 * @since 4.8.0 The $network_id parameter has been added.
     2333 *
     2334 * @param int|null $network_id ID of the network. Default is the current network.
     2335 */
     2336function wp_update_network_site_counts( $network_id = null ) {
     2337    $network_id = (int) $network_id;
     2338    if ( ! $network_id ) {
     2339        $network_id = get_current_network_id();
     2340    }
    23372341
    23382342    $count = get_sites( array(
    2339         'network_id' => $wpdb->siteid,
     2343        'network_id' => $network_id,
    23402344        'spam'       => 0,
    23412345        'deleted'    => 0,
     
    23442348    ) );
    23452349
    2346     update_site_option( 'blog_count', $count );
     2350    update_network_option( $network_id, 'blog_count', $count );
    23472351}
    23482352
  • trunk/tests/phpunit/tests/multisite/network.php

    r40371 r40484  
    377377        $this->assertEquals( $blog_id, $dashboard_blog->blog_id );
    378378    }
     379
     380    /**
     381     * @ticket 37528
     382     */
     383    function test_wp_update_network_site_counts() {
     384        update_network_option( null, 'blog_count', 40 );
     385
     386        $expected = get_sites( array(
     387            'network_id' => get_current_network_id(),
     388            'spam'       => 0,
     389            'deleted'    => 0,
     390            'archived'   => 0,
     391            'count'      => true,
     392        ) );
     393
     394        wp_update_network_site_counts();
     395
     396        $result = get_blog_count();
     397        $this->assertEquals( $expected, $result );
     398    }
     399
     400    /**
     401     * @ticket 37528
     402     */
     403    function test_wp_update_network_site_counts_on_different_network() {
     404        update_network_option( self::$different_network_id, 'blog_count', 40 );
     405
     406        wp_update_network_site_counts( self::$different_network_id );
     407
     408        $result = get_blog_count( self::$different_network_id );
     409        $this->assertEquals( 3, $result );
     410    }
    379411}
    380412
Note: See TracChangeset for help on using the changeset viewer.