How to render a node field I can get the field using entity_metadata_wrapper like this

$node = node_load($nid);
$node_wrapper = entity_metadata_wrapper('node', $node, array(
    'langcode' =&gt; $GLOBALS['language'],
    'bundle' =&gt; 'unit'
     )
);

$field_value = $node_wrapper-&gt;field_photo-&gt;value();


And that returns an array which I don't know how to render. I tried drupal_render() but it seems that it doesn't do the job.

So how can I render this field ?
The photo field is an image field? The value() function returns an array which is actual file data linked to the image. To render (or to create a renderable build), you can for example use theme_image function, which prints out an &lt;img&gt; tag.



$node = node_load(43);
$node_wrapper = entity_metadata_wrapper('node', $node, array(
    'langcode' =&gt; $GLOBALS['language'],
    'bundle' =&gt; 'subject'
));

$field_value = $node_wrapper-&gt;field_teaser_image-&gt;value();
$build = array(
    '#theme' =&gt; 'image',
    '#path' =&gt; $field_value['uri'],
    '#alt' =&gt; $field_value['alt'],
    '#title' =&gt; $field_value['title'],
    '#width' =&gt; $field_value['width'],
    '#height' =&gt; $field_value['height'],
);

print drupal_render($build);