Slide 1

Slide 1 text

The A to Z of WordPress Multisite

Slide 2

Slide 2 text

John Blackbourn • WordPress core developer • Senior engineer at Human Made • Find me on Twitter, GitHub, WordPress.org: @johnbillion

Slide 3

Slide 3 text

• The concepts of Multisite • Installation and setup • What differs from a standard WordPress installation • The management of sites and users • The management of themes, plugins, and settings • Advanced usage • Gotchas and best practices

Slide 4

Slide 4 text

example.com example.com/site1 example.com/site2 example.com/site4 example.com/site5 example.com/site3

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

• Groups of client sites • College or university departments • Company intranets • Localised or regional sites • Clubs, churches • Business franchises • Network of blogs Managing related sites

Slide 13

Slide 13 text

• Scottish Schools National Intranet • Harvard University • Reuters News • New York Times Networks of blogs

Slide 14

Slide 14 text

Site Site Site Site Site Site Network

Slide 15

Slide 15 text

Prerequisites: 1. In your wp-config.php:
 define( 'WP_ALLOW_MULTISITE', true ); 2. Deactivate all your plugins

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

However... wp core multisite-convert wp core multisite-install --title="My Network" --admin_email="[email protected]"

Slide 19

Slide 19 text

Multisite WP-CLI wp-cli.org

Slide 20

Slide 20 text

wp post list --url="example.com/site1" wp option update blogname "Site Three" --url="example.com/site3" wp user list --network

Slide 21

Slide 21 text

• Database tables • Separate uploads directories • Super Admins • Different capabilities for Admins and Editors • Network Admin screen What's new?

Slide 22

Slide 22 text

Database tables wp_comments wp_commentmeta wp_options wp_posts wp_postmeta wp_term_relationships wp_term_taxonomy wp_terms wp_termmeta wp_users wp_usermeta wp_blogs wp_blog_versions wp_registration_log wp_signups wp_site wp_sitemeta wp_2_comments wp_2_commentmeta wp_2_options wp_2_posts wp_2_postmeta wp_2_term_relationships wp_2_term_taxonomy wp_2_terms wp_2_termmeta Single Site Multisite Each site on Multisite

Slide 23

Slide 23 text

Separate uploads directories

Slide 24

Slide 24 text

Super Admins A user that can do anything on any site on the whole network, and administer the network from Network Admin

Slide 25

Slide 25 text

Administrators cannot: • Install plugins or themes • Use the plugin or theme editors • Create new users • Edit existing users • Update core/plugins/themes • Post unfiltered HTML Editors cannot: • Post unfiltered HTML Different capabilities for Admins and Editors

Slide 26

Slide 26 text

Network Admin screen

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

mtrunk.wp/wp-admin/network/sites.php Network Admin - Sites & Users

Slide 29

Slide 29 text

mtrunk.wp/wp-admin/network/themes.php Network Admin - Themes & Plugins

Slide 30

Slide 30 text

More drop-in plugins • sunrise.php • blog-deleted.php • blog-inactive.php • blog-suspended.php

Slide 31

Slide 31 text

Multi-network

Slide 32

Slide 32 text

REST API • Functions as expected on individual sites • Endpoints for network are in progress

Slide 33

Slide 33 text

HTTPS Either use it (ideally), or don't use it

Slide 34

Slide 34 text

Content syndication Not a reason itself to use Multisite • REST API • Elastic Search / ElasticPress

Slide 35

Slide 35 text

/blog URL prefix Remove from permastructure in main site settings

Slide 36

Slide 36 text

Plugins and libraries More on GitHub than WordPress.org

Slide 37

Slide 37 text

User activity logging • Stream • Simple History

Slide 38

Slide 38 text

Database sharding Don't even think about it. • Scale vertically first • HyperDB • LudicrousDB

Slide 39

Slide 39 text

Multisite code is old upload_is_file_too_big() "This file is too big"

Slide 40

Slide 40 text

Get involved • #core-multisite in • Bug fixing and improvements • 10 year old code

Slide 41

Slide 41 text

Thanks! Find me on Twitter, GitHub, WordPress.org: @johnbillion