WordPress のギャラリー機能を使って表示した画像のサムネイルをクリックすると、デフォルトでは「gallery」ショートコードのリンク属性はページになっているので(link=”page”)、テンプレートファイルが自動的に選択されて表示される。
MIME_TYPE.php (image.php、video.phpなど)→ attachment.php → single.php → index.php
このとき、image.php で画像を表示するには、以下のように記述する。
<?php if(is_attachment()): ?>
<?php if (wp_attachment_is_image($post->id)) : ?>
<?php $att_image = wp_get_attachment_image_src( $post->id, "full-size"); ?>
<p>
<a href="<?php echo $att_image[0];?>" target="_blank"><img src="<?php echo $att_image[0];?>" width="<?php echo $att_image[1];?>" height="<?php echo $att_image[2];?>" alt="<?php $post->post_excerpt; ?>" /></a>
</p>
<p><?php echo esc_html($post->post_title); ?></p> <!--タイトルを表示-->
<p><?php echo esc_html($post->post_excerpt); ?></p> <!--キャプションを表示-->
<p><?php echo esc_html($post->post_content); ?></p> <!--説明を表示 を表示-->
<?php else: ?>
<?php the_content(); ?>
<?php endif; ?>
<?php else: ?>
<?php the_content(); ?>
<?php endif; ?>
また、「gallery」ショートコードのリンク属性を「link=”file”」とすれば、サムネイル画像をクリックすると元画像が表示されるようになる。つまり、サムネイル画像に元画像へのリンクが貼られるので、jQuery 等での加工が簡単にできる。
[ gallery link=”file”]