Multisite Office Hours Recap (February 17, 2015)

Multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site office hours are held every Tuesday at 21:00UTC in #core-multisite and are followed by a casual bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub / ticketticket Created for both bug reports and feature development on the bug tracker. 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) networknetwork (versus site, blog) conversation. Defining definitions and first steps.

Notes on CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. hacks in use at

Logs for discussion.

  1. allows you to set a different language for the adminadmin (and super 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 HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. emails as well, send emails in proper localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. 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” pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the Plugin Directory or can be cost-based plugin from a third-party (i.e. HyberDB).
  3. Handling of cross domain cookies, full SSLSSL Secure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions.. How is that handled?
    • Load JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. in the headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., 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 CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. 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 filterFilter Filters are one of the two types of Hooks They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output./action hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. 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 sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL..

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 UIUI User interface 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 GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. 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!