Join My Multisite

This plugin is for Multisite instances only.

When you want to add a user to every site on your network, you’ve got some pretty cool plugins for that as a network admin. But sometimes you want to let your site-managers have that control, and sometimes you want to make it optional.

By activating this plugin, you give your Site Admins the following options:

  • Auto-add users
  • Have a ‘Join This Site’ button in a widget
  • Keep things exactly as they are
  • Create a per site registration page
  • Use a shortcode to put a ‘join this site’ button on any page/post.

It’s really that simple!

If they decide to auto-add, then any time a logged in user visits a site, they will be magically added to that site. If they decide to use a ‘Join This Site’ button, then they can customize the button message text for users who are logged in but not members, not logged in, or already members. Don’t worry, if you have registration turned off, they won’t see the ‘register’ button.

When you have registration turned on, each site can chose to use ‘Per Site Registration,’ which will allow them to create a page on their site just for registrations and signups. To display the signup code, just put [join-my-multisite] on the page.


Latest version: Download Join My Multisite v1.7.8 [zip]


This plugin is only network activatable. Configuration is done per-site via a page in the ‘Users’ section.


Q. This doesn’t work if I’m not using Multisite
A. It’s not supposed to. “Join My Multisite“, eh?

Q. What happens if the network doesn’t allow registrations?
A. If registration is turned off, the widget won’t display anything for logged-out users.

The [join-my-multisite] shortcode will display a notice that registration is unavailable.

Q. How do I use the per-site registration page?
A. None of this will work if the Network Admin has not enabled registrations.

First make a page for your registration. You can name it anything you want, however you can only use top-level pages (so and not On that page, enter the shortcode [join-my-multisite] around any other content you want.

Next, go to Users > Join My Multisite and check the box to allow for Per Site Registration. Once that option is saved, a new dropdown will appear that will let you select a top-level page on your site. Select which page, and you are good to go.

Q. Can I put a button for signups on a page or in a post?
A. Yep! Use [join-this-site]

Q. If I use the per-site registration, do I have to use the widget?
A. Nope! In fact, you can even select ‘none’ (i.e. leave things as they are) and still use the per-site shortcode, because magic.

Q. What if the network allows registration and I don’t make a site page?
A. Then non-logged-in users will be redirected to the network registration page, and they may not be automatically added to your site (I’m working on that). I strongly suggest you create a page.

Q. How do I style the button?
A. By default it will pick up whatever style your theme has, so if it styles buttons, you’ll automatically match. If you want more, the css is input#join-site.button to play with the button.

Q. How do I style the per-site registration page?
A. In your theme’s CSS. This is basically the default WordPress signup page, just done in short-code form, so it will default to use your site’s CSS anyway. The css falls under .mu_register of you want to override it in your theme.

Q. Can users sign up for a blog and an account via this plugin?
A. No. That’s such a massive network thing, the tinfoil hat in me didn’t want to do it. You could fiddle with the signup page code, if you wanted, but I don’t plan to support it.

Q. Is this BuddyPress compatible?
A. As far as the BuddyPress basics go (one instance, network activated) it seems to, however it’s not supported at this time. One user reported that with BP and JMM active, they weren’t getting any emails for registration, so it’s probably best to be used as a ‘Join if you’re logged in’ thing, versus a ‘Sign up on this site’ one.

Q. Can I set global options?
A. At this time, no. I don’t have any interest in making per-site registration pages that are controlled by the network admin. You’re welcome to fork or submit a pull request on the github repository –




  • Shortcode’s URL filter should only run on the front end, since otherwise it breaks per-site adding new sites from My Sites (props Boyington)
  • Security Fix: Sanitizing and validating _POST calls properly to prevent evil.
  • Security Fix: Implementing nonces.


  • Renaming PLUGIN_DIR constant to JMM_PLUGIN_DIR to prevent conflicts. That was stupid of me. (props Boyington)



  • P tags around widgets


  • Fixed the broken join-this-site shortcode
  • Corrected error on registration page calling blog_id without setting it
  • Made reindeer and Macabee cookies


  • Removing ‘None’ role as an option, to prevent people from shooting themselves in the foot (props llocally)
  • Fixing default_user_role to default_role (props llocally)
  • Translation improvement on help screen
  • Clarifying some BuddyPress things
  • Gobble gobble


  • Broke translations like a boss. Fixed.




  • Fixed shortcode output to work with text around it. Remember kids, shortcodes return, not echo. (also using ob_start etc to properly catch things in a better way).


  • Wrong shortcode mentioned in in-line doc
  • Better catching of the possible registration options (if users can register new blogs, they’re asked to sign in and then join the site)


  • Cleanup of settings and defines to show a better alert when you don’t have everything set up.
  • Corrected if-statement for display on admin end.


  • New shortcode: [join-this-site] (was a secret, now is not!)
  • Changed div content to div jmm-content, so you can style it how you want, and not break with weird themes – kudos @madri2


  • Added before_signup_form() – kudos @madri2
  • Redirect wp-signup to the page you defined. – kudos @madri2
  • Check for it you’re actually running Multisite (seriously, people?)


  • Translation cleanup
  • Fixed empty param error


  • Minor typo on pages causing silly backend error. Bad copy/pasta on my part.


  • More translation tweaks by dokkaebi
  • Fixing issues with debug errors (nothing was broken, just ugly)


  • Fixed uninstall issue


  • Fixed issues as noted by dokkaebi
  • Added in option for login form


  • Added in a per-site registration page option.
  • Corrected bug where non-network admins couldn’t make changes


  • First completed version.


  1. join-my-multisite screenshot 1


  2. join-my-multisite screenshot 2


  3. join-my-multisite screenshot 3

    Sample per-site registration front end