用外行的话说,没有什么大区别!update_user_option()
使用update_user_meta()
内部。唯一的区别是update_user_option()
如果您在多站点中,请使用数据库表前缀+博客ID作为选项名称的前缀;如果您在单站点安装中,请仅使用表前缀作为选项名称的前缀。
查看代码update_user_option()
/**
* Update user option with global blog capability.
*
* User options are just like user metadata except that they have support for
* global blog options. If the \'global\' parameter is false, which it is by default
* it will prepend the WordPress table prefix to the option name.
*
* Deletes the user option if $newvalue is empty.
*
* @since 2.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $user_id User ID.
* @param string $option_name User option name.
* @param mixed $newvalue User option value.
* @param bool $global Optional. Whether option name is global or blog specific.
* Default false (blog specific).
* @return int|bool User meta ID if the option didn\'t exist, true on successful update,
* false on failure.
*/
function update_user_option( $user_id, $option_name, $newvalue, $global = false ) {
global $wpdb;
if ( !$global )
$option_name = $wpdb->get_blog_prefix() . $option_name;
return update_user_meta( $user_id, $option_name, $newvalue );
}
选项名称的前缀为表前缀+博客ID(仅当ID不是1和0时)。
如果设置最后一个参数$global
到true
它与update_user_meta()
.
Purpose of update_user_option()
function
与其他表不同,WordPress不会为每个站点的usermeta创建单独的表。它将所有博客的用户信息保存在一个usermeta表中(在多站点中)。它只是在每个站点的关键字名称前面加上前缀
blog prefix
e、 g.对于博客ID 4
wp_capabilities
存储为
wp_4_capabilities
.
因此,无论您使用update_user_option()
, 例如key_name_abc
将成为wp_key_name_abc
用于多站点或单站点安装的主站点。将来,如果您将单个站点转换为多站点,则信息将仅在主站点中可用。
当您认为某些信息也取决于站点+用户时,请使用此功能。不喜欢名称、电子邮件等,因为这些信息属于独立于用户和站点的信息。