在 Drupal 6 中,您可以使用类似于以下代码的代码:
function example_user($op, &$edit, &$account, $category = NULL) {
switch($op) {
case 'load':
$account->fb_id ='xyz'
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在 Drupal 7 中,文档说明hook_user_load()如下:
由于静态缓存,
user_load_multiple()您不应使用此挂钩来修改 {users} 表本身返回的用户属性,因为这可能会导致从缓存加载时产生不可靠的结果。
为什么我得到的是用户而不仅仅是用户?
可以给它添加属性吗?
http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_load/7
您将获得一个用户对象数组,因为该钩子是从 调用的user_load_multiple(),通常会调用DrupalDefaultEntityController::load(),然后再调用DrupalDefaultEntityController::attachLoad()。
可以添加自定义属性,但不要覆盖从{users}表加载的默认属性;正如文档中所报告的,在这种情况下,从缓存加载用户对象时可能会遇到一些问题,而这正是实体 API 通常所做的事情。