update_usermeta

函式
update_usermeta ( $user_id, $meta_key, $meta_value )
引數
  • (int) $user_id User ID
    Required:
  • (string) $meta_key Metadata key.
    Required:
  • (mixed) $meta_value Metadata value.
    Required:
返回值
  • (bool) True on successful update, false on failure.
相關
  • update_user_meta()
定義位置
相關方法
update_user_metaupdate_metaupdate_site_metaupdate_term_metadelete_usermeta
引入
2.0.0
棄用
3.0.0

update_usermeta: 這個函式更新一個使用者的後設資料。它需要使用者ID,元鍵和元值來更新。

更新使用者的後設資料。

沒有必要對值進行序列化,如果需要的話,它們會被序列化。後設資料鍵只能是一個帶有下劃線的字串。所有其他的將
都將被刪除。

將刪除後設資料,如果元值為空。

function update_usermeta( $user_id, $meta_key, $meta_value ) {
	_deprecated_function( __FUNCTION__, '3.0.0', 'update_user_meta()' );
	global $wpdb;
	if ( !is_numeric( $user_id ) )
		return false;
	$meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);

	/** @todo Might need fix because usermeta data is assumed to be already escaped */
	if ( is_string($meta_value) )
		$meta_value = stripslashes($meta_value);
	$meta_value = maybe_serialize($meta_value);

	if (empty($meta_value)) {
		return delete_usermeta($user_id, $meta_key);
	}

	$cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );

	if ( $cur )
		do_action( 'update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );

	if ( !$cur )
		$wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value') );
	elseif ( $cur->meta_value != $meta_value )
		$wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key') );
	else
		return false;

	clean_user_cache( $user_id );
	wp_cache_delete( $user_id, 'user_meta' );

	if ( !$cur )
		do_action( 'added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value );
	else
		do_action( 'updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );

	return true;
}

常見問題

FAQs
檢視更多 >