質問: cssクラスをレンダー配列にどのように追加しますか? テンプレートファイルで、print render($content['field_image']);の前に、cssクラスを$content['field_image']レンダー配列の画像に追加したいと思います。これどうやってするの?これがレンダー配列です:array ( [#theme] => field [#weight] => 2 [#title] => image [#access] => 1 [#label_display] => hidden [#view_mode] => full [#language] => und [#field_name] => field_image [#field_type] => image [#field_translatable] => 1 [#entity_type] => node [#bundle] => ll_basic_page [#object] => stdclass object [#items] => array ( [0] => array ( [fid] => 6777 [alt] => alt text [title] => [uid] => 1 [filename] => imagefile.jpg [uri] => public://imagefile.jpg [filemime] => image/jpeg [filesize] => 28742 [status] => 1 [timestamp] => 1314312382 [rdf_mapping] => array ( ) ) ) [#formatter] => image [0] => array ( [#theme] => image_formatter [#item] => array ( [fid] => 6777 [alt] => alt text [title] => [uid] => 1 [filename] => imagefile.jpg [uri] => public://imagefile.jpg [filemime] => image/jpeg [filesize] => 28742 [status] => 1 [timestamp] => 1314312382 [rdf_mapping] => array () ) [#image_style] => [#path] => ) ) そして、これはhtml出力です:<div class="field field-name-field-image field-type-image field-label-hidden" thmr="thmr_96"> <div class="field-items"> <div class="field-item even"> <span thmr="thmr_97"> <span thmr="thmr_98"> <img typeof="foaf:image" src="http://..../sites/default/files/imagefile.jpg" alt="alt text" /> </span> </span> </div> </div> </div> $content['field_image']['#attributes']['class']にクラスを追加してみましたが、うまくいきませんでした。 私がやろうとしていることをどのように達成できるかについて何か考えがありますか?
回答: クラスを適用するための条件が必要な場合は、ページフィールドの情報を収集する必要があります。関数template_preprocess_field(&$variables)でそれを行うことができます。template_preprocess_field(&$variables) { if ($variables['element']['#field_type'] == 'image') { $variables['items'][0]['#item']['attributes']['class'][] = 'your-class'; } }