wp_pre_insert_user_data
云策文档标注
概述
wp_pre_insert_user_data 是一个 WordPress 过滤器钩子,用于在用户记录创建或更新前过滤用户数据。它仅处理 users 表中的数据,不包含用户元数据。
关键要点
- 过滤器在 wp_insert_user() 函数中调用,允许开发者修改即将插入或更新到数据库的用户数据。
- 参数包括 $data(用户数据数组)、$update(是否为更新操作)、$user_id(用户 ID,更新时提供)和 $userdata(原始用户数据数组)。
- 支持的数据字段涵盖用户登录名、密码、邮箱、URL、显示名称、注册时间等核心属性,以及角色、本地化设置等扩展选项。
- 从 WordPress 5.8.0 版本开始,新增了 $userdata 参数,提供更多上下文信息。
代码示例
$data = apply_filters( 'wp_pre_insert_user_data', $data, $update, ( $update ? $user_id : null ), $userdata );注意事项
- 此过滤器仅影响 users 表的数据,用户元数据需通过其他钩子处理。
- 某些字段(如 rich_editing)接受字符串字面量 'true' 或 'false',而非布尔值。
- 在 WordPress 6.8.0 中,用户密码默认使用 bcrypt 哈希算法替代 phpass。
原文内容
Filters user data before the record is created or updated.
Description
It only includes data in the users table, not any user metadata.
Parameters
$dataarray-
Values and keys for the user.
user_loginstringThe user’s login. Only included if $update == falseuser_passstringThe user’s password.user_emailstringThe user’s email.user_urlstringThe user’s url.user_nicenamestringThe user’s nice name. Defaults to a URL-safe version of user’s login.display_namestringThe user’s display name.user_registeredstringMySQL timestamp describing the moment when the user registered. Defaults to the current UTC timestamp.
$updatebool-
Whether the user is being updated rather than created.
$user_idint|null-
ID of the user to be updated, or NULL if the user is being created.
$userdataarray-
The raw array of data passed to wp_insert_user() .
More Arguments from wp_insert_user( … $userdata )
An array, object, or WP_User object of user data arguments.
IDintUser ID. If supplied, the user will be updated.user_passstringThe plain-text user password for new users.
Hashed password for existing users.user_loginstringThe user’s login username.user_nicenamestringThe URL-friendly user name.user_urlstringThe user URL.user_emailstringThe user email address.display_namestringThe user’s display name.
Default is the user’s username.nicknamestringThe user’s nickname.
Default is the user’s username.first_namestringThe user’s first name. For new users, will be used to build the first part of the user’s display name if$display_nameis not specified.last_namestringThe user’s last name. For new users, will be used to build the second part of the user’s display name if$display_nameis not specified.descriptionstringThe user’s biographical description.rich_editingstringWhether to enable the rich-editor for the user.
Accepts'true'or'false'as a string literal, not boolean. Default'true'.syntax_highlightingstringWhether to enable the rich code editor for the user.
Accepts'true'or'false'as a string literal, not boolean. Default'true'.comment_shortcutsstringWhether to enable comment moderation keyboard shortcuts for the user. Accepts'true'or'false'as a string literal, not boolean. Default'false'.admin_colorstringAdmin color scheme for the user. Default'fresh'.use_sslboolWhether the user should always access the admin over https. Default false.user_registeredstringDate the user registered in UTC. Format is ‘Y-m-d H:i:s’.user_activation_keystringPassword reset key. Default empty.spamboolMultisite only. Whether the user is marked as spam.
Default false.show_admin_bar_frontstringWhether to display the Admin Bar for the user on the site’s front end. Accepts'true'or'false'as a string literal, not boolean. Default'true'.rolestringUser’s role.localestringUser’s locale. Default empty.meta_inputarrayArray of custom user meta values keyed by meta key.
Default empty.
Source
$data = apply_filters( 'wp_pre_insert_user_data', $data, $update, ( $update ? $user_id : null ), $userdata );