Drupal 7 Drupal 7主题函数输出word';数组';

Drupal 7 Drupal 7主题函数输出word';数组';,drupal-7,themes,preprocessor,Drupal 7,Themes,Preprocessor,在我的hook_preprocess_node函数中,我通过主题化和添加一个t()函数来更改链接,以允许转换。 问题是,当我在节点中渲染时,我会打印出单词“ARRAY”,这是使用 <?php print render($field_downloads); ?> or <?php print $field_downloads); ?> 或者该代码在template.php中的确切位置?它应该在hook\u preprocess\u node()中,如果已经有一个名为f

在我的hook_preprocess_node函数中,我通过主题化和添加一个t()函数来更改链接,以允许转换。 问题是,当我在节点中渲染时,我会打印出单词“ARRAY”,这是使用

<?php  print render($field_downloads); ?> or <?php  print $field_downloads); ?>

或者该代码在template.php中的确切位置?它应该在
hook\u preprocess\u node()
中,如果已经有一个名为
field\u downloads
的变量,为什么不把你的变量称为其他变量(例如
$variables['custom\u downloads']=theme(“item\u list”,array(…
)?此时你正在连接
$variables['field\u downloads']]
(可能是一个数组)使用
主题(“item_list”
,它将返回一个字符串。然后您可以在模板文件中运行
print$custom_downloads
,就像好建议一样,它不需要有相同的名称,除非我认为我是“高效的”
$list_of_paths = array();
foreach($field_downloads as $index => $data)
{

    $file_uri = $data['uri'];
    $file_path = file_create_url($file_uri);
    $list_of_paths[] = '<strong> &gt;&gt;'. t('DOWNLOAD'). '</strong> '.l(t($data['description']), $file_path);
}



$variables['field_downloads'] .= theme("item_list", array(
  'items' => $list_of_paths,
  'type' => 'ul',
  'attributes' => array('class' => 'downloads'),    
));
}