Need help sorting “My Sites” Alphabetically

I have 40+ sites showing up in the “My Sites” page with more planned. Unfortunately WordPress doesn’t sort them alphabetically, and that makes it a pain to move from site to site during routine updates and maintenance. I’ve tried adding

asort($blogs);

to wp-admin/my-sites.php, but that doesn’t help either. And regardless, I’d rather do this using a filter in functions.php rather than modifying a core file. Making the issue even more complex is the fact that the list is split into four columns, and while a horizontal alphabetical ordering would be a huge improvement, vertical (by column) would be much, much better.

Read More

I’ve been searching for answers for this for a while and coming up empty, so any help would be appreciated. (My PHP is pretty basic, so spelling out the answer would definitely be appreciated.)

Related posts

Leave a Reply

2 comments

  1. Easy one.

    <?php
    /*
    Plugin Name: Sort My-Sites
    Description: Sorts the My Sites listing on both the page and in the 3.3 admin bar dropdown
    Author: Otto
    */
    
    add_filter('get_blogs_of_user','sort_my_sites');
    function sort_my_sites($blogs) {
            $f = create_function('$a,$b','return strcasecmp($a->blogname,$b->blogname);');
            uasort($blogs, $f);
            return $blogs;
    }
    

    Edit: If you want a PHP 7 version:

    add_filter('get_blogs_of_user', function( $blogs ) {
        uasort( $blogs, function( $a, $b ) { 
            return strcasecmp( $a->blogname, $b->blogname );
        });
        return $blogs;
    });