8.2.x field.api.php hook_field_info_alter(&$info)
8.0.x field.api.php hook_field_info_alter(&$info)
8.1.x field.api.php hook_field_info_alter(&$info)
8.3.x field.api.php hook_field_info_alter(&$info)
7.x field.api.php hook_field_info_alter(&$info)

Perform alterations on Field API field types.


$info: Array of information on field types exposed by hook_field_info() implementations.

Related topics

1 function implements hook_field_info_alter()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

user_field_info_alter in modules/user/user.module
Implements hook_field_info_alter().


modules/field/field.api.php, line 196
Hooks provided by the Field module.


function hook_field_info_alter(&$info) {
  // Add a setting to all field types.
  foreach ($info as $field_type => $field_type_info) {
    $info[$field_type]['settings'] += array(
      'mymodule_additional_setting' => 'default value',

  // Change the default widget for fields of type 'foo'.
  if (isset($info['foo'])) {
    $info['foo']['default widget'] = 'mymodule_widget';


bsandor’s picture

Same Question here.

TwoD’s picture

This data is only the field definition, which is basically the declaration that "this is a field, this is what it's called, these are its global and per instance settings and their default values, and it uses this widget and formatter by default". These are not Form API "fields" (those are defined using hook_element_info()), but fields attached to Entities. An Entity field's widget is usually composed of one or more Form API elements.