Multisite Office Hours Recap (February 17, 2015)

Multisite office hours are held every Tuesday at 21:00UTC in #core-multisite and are followed by a casual bug scrub / ticket conversation at 22:00 UTC.

We covered two agenda items today:

1. There was some group interest in hearing from folks about custom solutions in place for multisite. @tellyworth, @pento, @boren, and @johnbillion were around to provide some insight.
2. How to start the open/closed (trusted/untrusted) (magic/science) network conversation. Defining definitions and first steps.

Notes on Core hacks in use at

Logs for discussion.

  1. allows you to set a different language for the admin area and your site, not available in core due to performance reasons.
    • Use case: allow “users who may want their admin in one language and various sites on the network in various languages“.
    • wpcom_switch_to_locale() exists
    • Used for HTML emails as well, send emails in proper locale based on user defined settings.
  2. An async jobs system is used in a few places to run slow tasks, similar to cron. This would be great to see as a “show your work” plugin (i.e. HyberDB).
  3. Handling of cross domain cookies, full SSL. How is that handled?
    • Load JS in the header, which checks for an auth cookie on and on the custom domain.
    • If there’s no custom domain cookie, do some magic redirects to auth and write the cookie.
    • General musings over issues with x-domain, x-protocol.
    • Possible lessons to be learned from work on Customizer with domain mapping, mixed SSL, CORS.
  4. Custom network admin pages. Sign-ups, moving users and blogs around, changing usernames.

In general from @tellyworth“My plan with most is to try to get additional filter/action hooks in core. So if I list the candidates for that, maybe we can identify the custom plugin features we have that are of general interest and could be released open source.

General takeaways on the convo:

  • A @tellyworth post on hacks that could go into core via actions/filters/plugins/etc would be excellent.
  • Some sort of example showing off async jobs would be really cool. Similar to HyperDB as a “this is how you do it”.
  • We should look at cautiously when exploring cross-anything login, but also think outside of the box.
  • Keep exploring what’s possible with multi-language. Performance considerations, etc..

 Open/Closed Networks

Logs for open/closed networks.

We quickly solved the first unsolvable question for open/closed networks in multisite: Is it worth trying to user better terms than “open” and “closed” when talking about open/closed networks?

  • Yes. Open/Closed is too confusing, Trusted/Untrusted is too confusing. We need a better way of referring to this conceptually.

The second unsolvable question took a bit longer, but was also solved: How do we describe this in a sentence?

  • @jjj paraphrased a good discussion – “multisite is now a utility for managing multiple sites using one installation, where as the original vision was to enable blogging networks“.
  • @johnbillion – “So, to that end, how can we best provide that utility in a simple way?”
  • General conclusion: A future in which installing a network is the choice of a pre-configured network type.

After this we covered what network types might look like in core and how that could be facilitated through config or UI or… It seems there is general support for selecting the type of network to install during the standard setup process.

Next steps. Sit on the granular bits of today’s conversation for the week and open a discussion thread on Make/Core for brainstorming network types and needs as a follow up to the previous GitHub issue. A granular discussion of network types will be the main topic next week.

Be on the lookout for another post today to start the network types discussion. Thanks to everyone for a lively meeting today!