WordPress core committer John Blackbourn has released a new plugin called Network Media Library that provides a shared media library across all sites on a WordPress multisite network. Blackbourn is an engineer at Human Made and the plugin is one he created for a client by forking Frank Bültge and Dominik Schilling’s Multisite Global Media plugin.
By default, the plugin uses site ID 2 for the central media library, but the site ID can be customized via a filter hook. Access to the network-wide library is currently restricted to users who have Author level permissions with the upload_files capability on the central media site. In the plugin’s description Blackbourn said the plan for future versions is to remove the need for users to be added to the central media library.
After testing it locally, I discovered what the plugin’s description meant by “transparently” uploading media to the central media site. Unlike other plugins that perform a similar function (i.e. Network Shared Media and Multisite Global Media), there is no indication that files are part of a network-wide library. For example, Multisite Global Media adds a “Global Media” tab to the media library to indicate which files are aggregated from sites on the network. The Network Media Library plugin works in an invisible way without adding a separate tab to the media library.
Frank Bültge, co-author of the Multisite Global Media plugin, asked Blackbourn why he opted to fork the plugin instead of enhancing it. Blackbourn said the main difference is that the original plugin supports local media files and his fork does not.
This was my original plan, but the main reason for the fork is the local media support in MGM means some bugs can't easily be fixed, eg. the featured image problem that we chatted about. The two plugins serve different purposes, MGM supports local media files, NML doesn't 😊.
— johnbillion.json (@johnbillion) August 22, 2018
Developers who implement Network Media Library on their sites should be aware that it is still under active development. It currently has built-in compatibility with the Regenerate Thumbnails and WP User Avatars plugins. The plugin also has been confirmed to be compatible with BuddyPress, Extended CPTs, Gutenberg, Stream and User Profile Picture. Blackbourn plans to test and support many more plugins in the future, including CMB2, ACF, and assorted gallery and media management plugins.
Network Media Library is MIT-licensed and available on GitHub. It requires WordPress 4.9+ and PHP 7.0+. The plugin can be installed as a mu-plugin or network activated.
Are media files duplicated for all sites?
What happens if site A uploads image Z to shared media library, site B uses image Z in post_content, then site A deletes image Z from shared library?