1 field.api.php hook_field_display_alter(&$display, $context)

Alters the display settings of a field before it gets displayed.

Note that instead of hook_field_display_alter(), which is called for all fields on all entity types, hook_field_display_ENTITY_TYPE_alter() may be used to alter display settings for fields on a specific entity type only.

This hook is called once per field per displayed entity. If the result of the hook involves reading from the database, it is highly recommended to statically cache the information.

Parameters

$display: The display settings that will be used to display the field values, as found in the 'display' key of $instance definitions.

$context: An associative array containing:

  • entity_type: The entity type; e.g., 'node' or 'user'.
  • field: The field being rendered.
  • instance: The instance being rendered.
  • entity: The entity being rendered.
  • view_mode: The display mode, e.g. 'full', 'teaser'...

See also

hook_field_display_ENTITY_TYPE_alter()

Related topics

File

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

Code

function hook_field_display_alter(&$display, $context) {
  // Leave field labels out of the search index.
  // Note: The check against $context['entity_type'] == 'node' could be avoided
  // by using hook_field_display_node_alter() instead of
  // hook_field_display_alter(), resulting in less function calls when
  // rendering non-node entities.
  if ($context['entity_type'] == 'node' && $context['view_mode'] == 'search_index') {
    $display['label'] = 'hidden';
  }
}