I can print a field in content type tpl file with this:

<?php echo render($content['field_name']); ?>

But how can I print the field as a different display mode?

EG I might always want to print the teaser version of an image field, regardless of what view mode is being used.


There might be a shortcut to this but I don't know it...

// Get the bundle settings.
$info = field_info_instance('node', 'field_name', 'content_type');

// Get the field render array
$build = field_view_field('node', $node, 'field_name', $info['display']['teaser']);

// And print it
print render($build);

Moving the display building logic to a preprocess function would probably be a good idea.

  • Sorry but you've misunderstood my question. I've edited it to make it clearer. – Evanss May 13 '13 at 14:51
  • @jdln I've had another go :) – Clive May 13 '13 at 14:58
  • Its not printing anything for me. The only bits ive changed are 'field_name','content_type' and 'teaser', is that correct? – Evanss May 13 '13 at 15:06
  • Yep that's correct. I just tried the code on a site of mine and it works fine. Have you replaced field_name in both places? – Clive May 13 '13 at 15:07
  • I was expecting my display mode to be 'my_display_mode' but actually the machine name is 'mydisplaymode'. Working fine, thanks. – Evanss May 13 '13 at 15:22

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.