WordPressで画像の大きさを知るには?
前回で紹介した画像を表示する方法ですが、画像のサイズは不明のままでした。
まぁ、サイズが不明でもなんとかなるだろうと思っていたのですが…
IE6やIE7で初回の読み込み時にレイアウトが崩れることが判明。
再読み込みするときちんとしたレイアウトで表示してくれます。
状況的にサイズの指定がないことが原因っぽい。
ということでどうやったらサイズを調べられるのか探してみました。
Codexを見てもズバリの関数は無かったのですが、関数の中には画像のサイズを利用しているものがあり、その関数のソースを見ることに。
そうするとありました。名前もそのまま getimagesize という関数が。 どこて定義されているのかわかりませんが、ファイルのパスを引数に使って配列でサイズを返してくれるみたいです。
ということで前回のソースをさらに改良を加えてこんな感じしました。
function head_img($each_img,$img_alt_value,$img_path){
if($each_img==""){
/*何も表示しない*/
}else{
$img_begin='<div class="imgBox clearfix"><img src="';
$img_path=$img_path.'/wp-content/uploads/'.$each_img;/*画像ファイルのパスを設定*/
$img_alt='" alt="'.$img_alt_value;/*画像ファイルのAltを設定*/
$img_size = getimagesize($img_path);/*画像の大きさを所得*/
$img_end='" height="'.$img_size[1].'" width="780" /></div>';/*ファイルの高さのみ使用。横幅幅は固定(大きさが間違っていてもレイアウトを崩さないため)*/echo $img_begin.$img_path.$img_alt.$img_end;
}
}
返値の配列は“横幅 高さ”の順になるようです。
今回は高さだけ利用しましたが使う場所によっては幅も利用できますね。
こんなことしたがる人が他にいるか分かりませんがご参考までに。
ちなみにIEのレイアウト崩れも解消されたと思います、多分…
コメント
この記事へのコメントはありません。
コメントをどうぞ