preprocess_field() not working - what am I doing wrong?
I think it was the # in front of items that was messing things up. I have this working now as

function creative_responsive_theme_preprocess_field(&amp;$variables) {
    if (user_is_logged_in()) {  return $variables;}
//if (in_array($variables['element']['#field_name'], array('field_audio_fast_', 'field_audio_slow_'))) {
    if (($variables['element']['#field_name'] == 'field_audio_fast_') OR ($variables['element']['#field_name'] == 'field_audio_slow_')){
        $variables['items'][0]=[];
        $variables['items'][0]['value'] = '&lt;a href='.'"/user/register?destination=[path]"&gt; &lt;img src="/images/play.gif"&gt;&lt;/a&gt;';
        $variables['items'][0]['format'] = 'full_html';
        $variables['items'][0]['safe_value'] ='';
        $variables['items'][0]['#markup'] = '&lt;a href='.'"/user/register?destination=[path]"&gt; &lt;img src="/images/play.gif"&gt;&lt;/a&gt;';
        return $variables;
    }
}


At first  $variables['items'][0]=[]; was producing a bunch of warnings about invalid arguments to core functions regarding children and parents and rendering. Then I cleared drupal cache. The thing is, the field I am replacing is an audio file field. So I think there must be a cleaner way to do this than above. Let me know if you have suggestions!