函数文档

wpmu_create_user()

💡 云策文档标注

概述

wpmu_create_user() 是 WordPress 多站点环境中用于创建用户的函数,适用于用户自助注册或超级管理员手动添加新用户场景。它基于 wp_create_user() 实现,并触发特定 Hook 以支持多站点扩展。

关键要点

  • 函数用于创建新用户,接受用户名、密码和邮箱作为必填参数,返回用户 ID 或失败时返回 false。
  • 在多站点环境下,新创建的用户默认无角色或权限,需后续添加到具体站点。
  • 触发 wpmu_new_user Hook,便于开发者执行自定义操作,但仅限多站点使用;单站点应使用 user_register Hook。
  • 内部调用 sanitize_user() 清理用户名,并删除用户选项以重置权限状态。

代码示例

function wpmu_create_user(
    $user_name,
    #[SensitiveParameter]
    $password,
    $email
) {
    $user_name = preg_replace( '/\s+/', '', sanitize_user( $user_name, true ) );

    $user_id = wp_create_user( $user_name, $password, $email );
    if ( is_wp_error( $user_id ) ) {
        return false;
    }

    // Newly created users have no roles or caps until they are added to a blog.
    delete_user_option( $user_id, 'capabilities' );
    delete_user_option( $user_id, 'user_level' );

    /**
     * Fires immediately after a new user is created.
     *
     * @since MU (3.0.0)
     *
     * @param int $user_id User ID.
     */
    do_action( 'wpmu_new_user', $user_id );

    return $user_id;
}

📄 原文内容

Creates a user.

Description

This function runs when a user self-registers as well as when a Super Admin creates a new user. Hook to ‘wpmu_new_user’ for events that should affect all new users, but only on Multisite (otherwise use ‘user_register’).

Parameters

$user_namestringrequired
The new user’s login name.
$passwordstringrequired
The new user’s password.
$emailstringrequired
The new user’s email address.

Return

int|false Returns false on failure, or int $user_id on success.

Source

function wpmu_create_user(
	$user_name,
	#[SensitiveParameter]
	$password,
	$email
) {
	$user_name = preg_replace( '/s+/', '', sanitize_user( $user_name, true ) );

	$user_id = wp_create_user( $user_name, $password, $email );
	if ( is_wp_error( $user_id ) ) {
		return false;
	}

	// Newly created users have no roles or caps until they are added to a blog.
	delete_user_option( $user_id, 'capabilities' );
	delete_user_option( $user_id, 'user_level' );

	/**
	 * Fires immediately after a new user is created.
	 *
	 * @since MU (3.0.0)
	 *
	 * @param int $user_id User ID.
	 */
	do_action( 'wpmu_new_user', $user_id );

	return $user_id;
}

Hooks

do_action( ‘wpmu_new_user’, int $user_id )

Fires immediately after a new user is created.

Changelog

Version Description
MU (3.0.0) Introduced.