Per user, per site Dashboard and Screen Options in WordPress multisite

In a WordPress multisite installation, users were customizing their meta box configuration in the Screen Options tab (including boxes for various plugins) and having the settings disappear[^1][^2] between sites because WPMS has per user–not per user, per site–options for customizing the Dashboard and Screen Options.

I ended up writing the following plugin to create a series of shadow screen options for each user. This is reasonable on multisite installs with a finite number of users and blogs. If you are not concerned with the number of rows added per user, per blog, then this will allow your users to set Screen Options on a per blog basis. This is especially relevant on multisite installs where blogs have different uses and the active plugin set differs between blogs. Screen Options for plugin-generated meta boxes will be saved on a per site basis for each user, allowing them to retain their Add New/Edit Post appearance on each separate blog.

[Shadow Screen Options](

## References

[^1]: [Per user screen options overwrite per site custom meta boxes](
[^2]: [Screen options and meta box settings can lose per-blog meta box positions](

Unmask file locations in a WordPress multisite installation

The serving of static image files by `ms-files.php` can be problematic with some server setups, especially those that are using nginx to serve static files. I wrote the following to deal with uploaded files in situations where I don’t care about masking the actual location of the images.

Continue reading Unmask file locations in a WordPress multisite installation