Super Admin All Sites Menu

plugin banner

For the super admin, replace WP Admin Bar My Sites menu with an All Sites menu.

Author:Per Soderlind (profile at wordpress.org)
WordPress version required:5.6
WordPress version tested:6.4.3
Plugin version:1.6.7
Added to WordPress repository:14-10-2021
Last updated:15-02-2024
Rating, %:0
Rated by:0
Plugin URI:https://github.com/soderlind/super-admin-all-...
Total downloads:4 186
plugin download
Click to start download
  • Doesn’t use switch_to_blog(), i.e. Super Admin All Sites Menu is faster and uses less resources than the WP Admin Bar My Sites menu.
  • Subsite menu data are stored locally in IndexedDB (did I say it’s fast?). The local storage is updated when;
    • the plugin is activated.
    • a site is added or deleted.
    • you change a blog name.
    • IndexedDB is out of sync with site changes.
    • Restricted Site Access is activated or deactivated.
  • When subsite menu data is updated, AJAX is used and it’s done in increments (100 sites per increment).
  • List all subsites. WP Admin Bar My Sites only list sites you’re a local admin on.
  • Mark sites that has restricted site access with a red icon.
  • Sites menu is sorted alphabetically.
  • Search filter.
  • Add more menu choices:
    • Under “Network Admin”
      • Add New Site
    • Per subsite.
      • ‘New Page’
      • ‘Users’
      • ‘Plugins’
      • ‘Settings’

Prerequisite

  • WordPress Multisite
  • A modern browser, IE 11 isn’t supported.

Filters

You can use the following filters to override the defaults:

  • all_sites_menu_order_by

    • Sort menu by. Default value is name, accepts id, url or name

      add_filter( 'all_sites_menu_order_by', function( string $order_by ) : string {
          return 'url';
      } );
      
  • all_sites_menu_load_increments

    • AJAX load increments. Default value is 100.

      add_filter( 'all_sites_menu_load_increments', function( int $increments ) : int {
          return 300;
      } );
      
  • all_sites_menu_plugin_trigger

    • Trigger an update of local storage (IndexedDB) when a plugin is (de)activated. Default is [ 'restricted-site-access/restricted_site_access.php' ].

      Note: Must be an array and each element in the array must point to the main plugin file. Syntax 'plugin-dir/plugin-file.php'

      add_filter( 'all_sites_menu_plugin_trigger', function( array $plugins ) : array {
          return [
              'restricted-site-access/restricted_site_access.php',
              'myplugin/myplugin.php',
          ];
      } );
      
  • all_sites_menu_search_threshold

    • Don’t display search field if there’s less than N subsites. Default value is 20.

      add_filter( 'all_sites_menu_search_threshold', function( int $increments ) : int {
          return 40;
      } );
      
  • all_sites_menu_search_threshold

    • Don’t display search field if there’s less than N subsites. Default value is 20.

      add_filter( 'all_sites_menu_search_threshold', function( int $increments ) : int {
          return 40;
      } );
      
  • all_sites_menu_force_refresh_expiration

    • How often a forced refresh should be taken. Default value is 3600. Set the value to 0 to disable forced refresh.

      add_filter( 'all_sites_menu_force_refresh_expiration', function( int $seconds ) : int {
          return 3600;
      } );
      

Development

  • Active development of this plugin is handled on GitHub.

Screenshots
ChangeLog