ワードプレスで運用しているウェブサイトで、サムネイル画像の縦・横のサイズをループ内で動的に取得、表示する必要があり、その方法を調べたのでメモします。

PHPのgetimagesize()を使って簡単に実装できました。
基本的な使い方は以下のとおり。

<?php
$file = "sample.png";
?>
<img src="<?php echo $file; ?>" <?php getimagesize($file)[3]; ?>>

getimagesize("画像のURL"); とすることで、画像の情報が配列にセットされます。

具体的には次のようになります。

  • getimagesize($file)[0]; : width=”XXX”
  • getimagesize($file)[1]; : height=”YYY”
  • getimagesize($file)[2]; : 画像の種類
  • getimagesize($file)[3]; : width=”XXX” height=”YYY”

なお、似ている関数で『imagesx(画像の幅を取得)』と『imagesy(画像の高さを取得)』がありますが、これらはgetimagesizeと違ってGdImageで生成したオブジェクトを渡さなければいけないので注意が必要です。

getimagesize()は簡単に扱えるので非常に便利です。
ぜひ覚えておきましょう!