函数文档

add_new_user_to_blog()

💡 云策文档标注

概述

add_new_user_to_blog() 是一个 WordPress 函数,用于将新创建的用户添加到指定的博客站点。它通常作为 'wpmu_activate_user' 动作的钩子函数使用,处理多站点网络中的用户激活过程。

关键要点

  • 此函数专为多站点网络设计,通过 add_user_to_blog() 实现用户添加。
  • 它接受用户 ID、密码(被忽略)和元数据数组作为参数,其中元数据需包含目标博客 ID 和用户角色。
  • 函数会从主博客移除用户,然后添加到指定博客,并更新用户的 primary_blog 元数据。

代码示例

function add_new_user_to_blog(
    $user_id,
    #[SensitiveParameter]
    $password,
    $meta
) {
    if ( ! empty( $meta['add_to_blog'] ) ) {
        $blog_id = $meta['add_to_blog'];
        $role    = $meta['new_role'];
        remove_user_from_blog( $user_id, get_network()->site_id ); // Remove user from main blog.

        $result = add_user_to_blog( $blog_id, $user_id, $role );

        if ( ! is_wp_error( $result ) ) {
            update_user_meta( $user_id, 'primary_blog', $blog_id );
        }
    }
}

注意事项

  • 此函数是内部钩子函数,通常不应直接调用,而是通过 'wpmu_activate_user' 动作触发。
  • 密码参数被忽略,实际用户密码处理在其他地方完成。
  • 确保元数据数组包含 'add_to_blog' 和 'new_role' 键,否则函数可能不执行任何操作。

📄 原文内容

Adds a newly created user to the appropriate blog

Description

To add a user in general, use add_user_to_blog() . This function is specifically hooked into the ‘wpmu_activate_user’ action.

See also

Parameters

$user_idintrequired
User ID.
$passwordstringrequired
User password. Ignored.
$metaarrayrequired
Signup meta data.

Source

function add_new_user_to_blog(
	$user_id,
	#[SensitiveParameter]
	$password,
	$meta
) {
	if ( ! empty( $meta['add_to_blog'] ) ) {
		$blog_id = $meta['add_to_blog'];
		$role    = $meta['new_role'];
		remove_user_from_blog( $user_id, get_network()->site_id ); // Remove user from main blog.

		$result = add_user_to_blog( $blog_id, $user_id, $role );

		if ( ! is_wp_error( $result ) ) {
			update_user_meta( $user_id, 'primary_blog', $blog_id );
		}
	}
}

Changelog

Version Description
MU (3.0.0) Introduced.