Multisite: Use `to_array()` method on `WP_Site` objects in `wp_get_sites()`
When an object with private properties is cast directly to an array, those properties are no longer available with their original keys. Props @flixos90. See #36717. git-svn-id: https://develop.svn.wordpress.org/trunk@37667 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
56c98dd30a
commit
363533d9b3
|
@ -506,7 +506,8 @@ function wp_get_sites( $args = array() ) {
|
|||
$results = array();
|
||||
|
||||
foreach ( $_sites as $_site ) {
|
||||
$results[] = (array) get_site( $_site );
|
||||
$_site = get_site( $_site );
|
||||
$results[] = $_site->to_array();
|
||||
}
|
||||
|
||||
return $results;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
if ( is_multisite() ) :
|
||||
|
||||
/**
|
||||
* @group wp-get-site
|
||||
* @group ms-site
|
||||
* @group multisite
|
||||
*/
|
||||
|
@ -31,6 +32,32 @@ class Tests_Multisite_WP_Get_Sites extends WP_UnitTestCase {
|
|||
wp_update_network_site_counts();
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
public function test_wp_get_sites_site_is_expected_array() {
|
||||
|
||||
$keys = array(
|
||||
'blog_id',
|
||||
'site_id',
|
||||
'domain',
|
||||
'path',
|
||||
'registered',
|
||||
'last_updated',
|
||||
'public',
|
||||
'archived',
|
||||
'mature',
|
||||
'spam',
|
||||
'deleted',
|
||||
'lang_id'
|
||||
);
|
||||
$sites = wp_get_sites();
|
||||
|
||||
$missing_keys = array_diff_key( array_flip( $keys ), $sites[0] );
|
||||
|
||||
$this->assertEquals( array(), $missing_keys, 'Keys are missing from site arrays.' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedDeprecated wp_get_sites
|
||||
* @dataProvider data_wp_get_sites
|
||||
|
|
Loading…
Reference in New Issue