So the main things that have changed that need updating due to the deprecation of wp_get_sites()
is to change that to get_sites()
. When using get_sites()
, $TheBlogs
will be an array of WP_Site
objects, rather than an array of arrays. This means that to get the details of the site, rather than using get_blog_details()
you can use $blog->__get( 'blogname' )
.
The other part, sorting alphabetically, will require sorting the resulting array, as get_sites()
doesn’t appear to have an argument for ordering by blogname.
// Get blogs with get_sites(), which uses 'number' instead of 'limit'.
$blogs = get_sites( ['number' => 1000] );
// Sort blogs alphabetically.
uasort(
$blogs,
function( $a, $b ) {
// Compare site blog names alphabetically for sorting purposes.
return strcmp( $a->__get( 'blogname' ), $b->__get( 'blogname' ) );
}
);
foreach ( $blogs as $blog ) {
// Store blog name in variable for later use.
$blogname = $blog->__get( 'blogname' );
// Check blog is not excluded.
if (
get_site_option( 'msregister_blog1_id' ) != $blogname &&
get_site_option( 'msregister_exclude_' . $blogname ) != 'yes'
) {
// Output option tag, escaping the blog name as appropriate.
printf(
'<option value="%s">%s</option>',
esc_attr( $blogname ),
esc_html( $blogname )
);
}
}