Using WordPress ‘maybe_add_existing_user_to_blog()’ PHP function

The maybe_add_existing_user_to_blog() WordPress PHP function adds a new user to a blog by visiting /newbloguser/{key}/.




  • None

More information

See WordPress Developer Resources: maybe_add_existing_user_to_blog()


Add Existing User to Blog

To add an existing user to a blog, you can generate a unique key and store the user’s details in the options table. Then, have the user visit the URL with the generated key.

// Generate a unique key for the user
$key = wp_generate_password(20, false);

// User data to be added to the blog
$user_data = array(
    'user_id' => 10,
    'role' => 'editor'

// Save user data as an option
update_option("new_user_{$key}", $user_data);

// Provide the user with the URL to visit and add themselves to the blog
echo "Visit this link to join the blog: " . home_url("newbloguser/{$key}/");

Custom Page to Add Existing User to Blog

Create a custom page template and use the maybe_add_existing_user_to_blog() function to allow existing users to join the blog by visiting a specific URL.

// In your custom page template
add_action('template_redirect', 'my_add_existing_user_to_blog');

function my_add_existing_user_to_blog() {
    if (is_page('join-blog')) {

Add User to Blog via Custom Function

Create a custom function to add an existing user to the blog by passing the unique key as an argument.

function my_add_existing_user($key) {
    $_GET['key'] = $key;

// Call the custom function with the unique key

Validate Key before Adding User

Add a custom function to validate the key before adding the user to the blog.

function my_validate_and_add_user($key) {
    if (my_is_key_valid($key)) {
        $_GET['key'] = $key;

function my_is_key_valid($key) {
    // Perform your key validation logic here
    return true; // Assuming the key is valid

// Call the custom function with the unique key

Redirect User after Adding to Blog

Redirect the user to a specific page after adding them to the blog.

add_action('added_existing_user', 'my_redirect_after_adding_user', 10, 1);

function my_redirect_after_adding_user($user_id) {
    // Redirect to the specified page