How to add field classes from within template_preprocess_node During template_preprocess_node I would like to be able to dynamically add classes to specific field wrappers.

Is this possible or does template_preprocess_node run after template_preprocess_field? I would much prefer to use template_preprocess_node if possible as the class relies on other fields.

I've tried adding:

$vars['content']['field_name']['classes']
$vars['content']['field_name']['classes_array']


but neither seem to take effect.

Were I to do the same within template_preprocess_field then I apparently would add classes to $classes_array which would automatically flatten into $classes, however these values don't appear to be available, or at least provided, to template_preprocess_node?

EDIT:

After investigation, it seems template_preprocess_node does run first, however it doesn't seem to have access to $classes_array as it appears in template_preprocess_field.
Ok my somewhat dirty solution was to pass a classes array from template_preprocess_node to template_preprocess_field:

function template_preprocess_node(&amp;$vars){
  if(!isset($vars['content']['field_name']['classes_array'])){                                                                                   
    $vars['content']['field_name']['classes_array'] = array();                                                                                   
  }                                                                                                                                                          
  $vars['content']['field_name']['classes_array'][] = 'custom-class';
}

function template_preprocess_field(&amp;$vars){                                                                                                                    
  if(isset($vars['element']['classes_array'])){                                                                                                                    
    $vars['classes_array'] = array_merge($vars['classes_array'], $vars['element']['classes_array']);                                                               
  }                                                                                                                                                                
}


If there's a more 'official' way to do this, please feel free to enlighten me and I'll re-award the answer :)