WordPressに保存されている画像のURLからwidthとかheightの情報を取得する方法

みなさんこんにちは!!

今回Wordpressの開発をしていてハマったところ。

それは、保存されている画像のURLからWidthとかHeightの情報ってどうやって取るねん!!!って話。

結論から言うと、下記コードで対応できます。

<?php
  $image_url = 'https://example.com/wp-content/uploads/2023/03/image.jpg'; // 画像のURLを指定
  $image_info = getimagesize( $image_url ); // 画像の情報を取得
  $image_width = $image_info[0]; // 画像のwidthを取得
  $image_height = $image_info[1]; // 画像のheightを取得
?>

この際の$image_infoの中身はこんな感じ。

{
  "0": 1280,
  "1": 1280,
  "2": 2,
  "3": "width=\"1280\" height=\"1280\"",
  "bits": 8,
  "channels": 3,
  "mime": "image/jpeg"
}

上記の0番目がwidth、1番目がheightと言うことです!

以上!

というかそもそもURLからWidthとかHeightとってどうするねん!!

ってあるかもしれませんが、私の場合WordpressをHeadlessCMSとして使用しつつ、フロントではNext.jsを使用する際にNest.jsのImageコンポーネントってwidthとheight必須なので、そこに値を入れるためにWordpressのAPIでwidthとheightを返す必要があるという感じでしたね!!

目次

画像のIDから取得する場合は?

<?php
  $attachment_id = get_post_thumbnail_id(); // 添付ファイルIDを取得
  $image_attributes = wp_get_attachment_image_src( $attachment_id, 'full' ); // 画像の情報を取得
  $image_width = $image_attributes[1]; // 画像のwidthを取得
  $image_height = $image_attributes[2]; // 画像のheightを取得
?>

上記で対応ができます。

ちなみに上記の戻り値はこんな感じ。

[
  "http://ohm-web-magazine.local/wp-content/uploads/2023/03/S__78749758.jpg",
  1280,
  1280,
  false
]

戻り値は連想配列とかではなく、普通に配列。

phpのこういうとこまじでめんどくさいですよねーー。。

この記事が気に入ったら
いいねしてね!

どんどんシェア待ってるぜ!!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次