What is the correct way to render content from custom content type? I am new to Drupal and am realising that there are a number of ways to perform even the most basic task but it is hard to know which way is right.

When rendering fields from a custom content type which of the following ways is correct/most efficient/safest way or am I wrong and there is another even better way?

Option 1 - this way seems a little verbose but I have read in a number of places that this is the correct way to render individual fields.:

&lt;?php $included = field_view_field( 'node', $node, 'field_what_s_included', array('label' =&gt; 'hidden') );
            print render($included);
        ?&gt;


Option 2 - This way seems much neater and is also written about a lot:

&lt;?php print render($content['field_what_s_included']; ?&gt;


Thanks for clarifying this for me.

James
Option 2 is the preferred option.

Use the default node.tpl.php as a reference.

You can see it uses the hide() function to hide fields it doesn't want to render and the render() function to render fields.

This is because all the processing you are doing in option 1 with field_view_field() has already been done and is ready to render, so you don't need to do it again.

I recommend doing some reading on overriding themeable output, which involves overriding markup with theme functions and template files.