Drupal 7で「node.tpl.php」内に画像スタイルを指定して、画像を表示する方法。
通常はコンテンツタイプの表示の管理で設定した、画像スタイルをもとに「node.tpl.php」テンプレート内で画像を表示します。
1 2 3 4 5 |
//すべての画像 <?php print render($content['field_image']); ?> //1番目の画像 <?php print render($content['field_image'][0]); ?> |
この場合では複数毎の画像があったときでも、同じ画像スタイルで表示されます。
もし1番目の画像、2番目の画像で画像スタイルを変えたい場合には、次のような方法で実現できます。
1 2 3 4 5 |
//1番目の画像 <?php print theme('image_style', array('path' => $node->field_image['und'][0]['uri'], 'style_name' => 'large')); ?> //2番目の画像 <?php print theme('image_style', array('path' => $node->field_image['und'][1]['uri'], 'style_name' => 'medium')); ?> |
1番目の画像($node->field_image[‘und’][0])に対しては、画像スタイル「large」、2番目の画像には「medium」を、それぞれ指定しています。
たたし、この方法ではrender()関数と違い、画像が無い場合にエラーを出してしまうので、次のように画像の有無をチェックした方が安全です。
1 2 3 4 5 |
<?php if (isset($node->field_image['und'][0])) { print theme('image_style', array('path' => $node->field_image['und'][0]['uri'], 'style_name' => 'large')); } ?> |