hide published node's field?
You did not tell it to hide $node-&gt;field__iap_dl['und'][0]['url'].

The field probably did not show up in the rendered content, but it will still appear if you tell the template to print the information directly from the node object.

The simplest way to hide a field is to go to /admin/structure/types and under manage fields for the content type, mark the field as hidden.

EDIT:

Is this a cut and paste of your code? If so the fields names are different. field__iap_dl is not the same as field__ipa_dl.