Append an  tag to entity field view hook
You can theme individual fields: https://api.drupal.org/api/drupal/modules!field!field.module/function/theme_field/7

You can either have a theme function in template.php or a tpl.php template file, the former is preferred for performance reasons.

Using a theme function you could do something like:

THEMENAME_field__link($vars) {
  $output = '';
  foreach ($vars['items'] as $delta =&gt; $item) {
    $link = l($item['#title'], $item['#href']);
    $output .= '&lt;div class="' . $vars['classes'] . '"' . $vars['item_attributes'][$delta] . '&gt;' . $link . '&lt;i class="fa fa-download"&gt;&amp;nbsp;&lt;/&gt;&lt;/div&gt;';
  }
  return $output;
}


Though you'll have to check $vars for specifics.  As for checking the widget I think you can get a clue from $vars['element']['#formatter']