Field labels can be hidden for a content type by going to "Manage display" and changing the labels to hidden.

However, I rarely need to show labels.

Is there a way to have the labels hidden by default, site-wide?


I think preprocess_node should do the trick

use that in your template.php

function template_preprocess_node(&$vars){
  //Supposing that your content type name is "group"
  if($vars['type'] == 'your type'){
    $vars['content']['your_field']['#title'] = '';
| improve this answer | |
  • Please could you give a bit more detail? – Hugo Jan 22 '16 at 14:28
  • I've added the code above, preprocess_node seems to be the one. – GwenM Jan 22 '16 at 14:43

Use hook_field_create_instance() to hide content type labels by default.

// implementation of hook_field_create_instance()
// sets all labels to Hidden for new fields
function MODULENAME_field_create_instance($instance){
  // fetch the instance info
  $instance_info = field_info_instance(

  // set label in each display to hidden
  foreach( $instance_info['display'] as &$display ){
    $display['label'] = 'hidden';

  // save back to disk
| improve this answer | |
  • When I added a new field to a content type with this code in place, the label was "Above". – Hugo Jan 25 '16 at 10:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.