WordPressのテーマ内で、画像URLを渡してサイズを取得したいなーと思って調べたところ、寝ログさんにドンピシャな記事がありました!
画像URLから画像の横幅と高さを取得する方法をご紹介したいと思います。
WordPressで画像URLから画像の横幅と高さを取得する方法
画像の横幅と高さを取得する方法は、「WordPress内で利用している画像の幅と高さを取得する方法」という記事で解説されています。
まず、適用しているテーマのfunctions.phpに以下を追加します。
function get_image_width_and_height($image_url){
$res = null;
//wp-contentディレクトリのパス:/var/www/html/example/wp-content
$wp_content_dir = WP_CONTENT_DIR;
//wp-contentディレクトリのURL:http://www.example.com/wp-content
$wp_content_url = content_url();
//URLをローカルパスに置換
$image_file = str_replace($wp_content_url, $wp_content_dir, $image_url);
//画像サイズを取得
$imagesize = getimagesize($image_file);
if ($imagesize) {
$res = array();
$res['width'] = $imagesize[0];
$res['height'] = $imagesize[1];
return $res;
}
}
そして、テーマ内の画像の横幅と高さを取得したいところで、以下のように記述すれば横幅と高さを取得できます。
<?php $size = get_image_width_and_height('Wordpress内の画像URL'); ?>
横幅と高さの値が配列で返ってくるのですが、横幅は「$size[‘width’]」、高さは「$size[‘height’]」に格納されます。なので、以下のような感じで利用できます。
<img src="" width="<?php echo $size['width']; ?>" height="<?php echo $size['height']; ?>">
あとがき
ちょっと特殊なケースで画像と横幅を取得したかったので大変助かりました!