WordPress内で利用している画像の幅と高さを取得する方法

自分のサーバーのWordpress内にアップされている画像のURLから、画像の幅(width)と、画像の高さ(height)を取得する関数を作ったのでメモがてら紹介です。

スポンサーリンク
レクタングル(大)広告

サーバー内の画像URLから画像の幅と高さを取得する関数

で、作成した関数が以下です。

動作としては、以下のようなことを行っています。

  1. 引数に指定された「サーバー内の画像URL」を「ローカルのファイルパス」に変換
  2. PHPで元からあるgetimagesize()関数で画像情報を取得
  3. 幅と高さを連想配列で返す
この関数は、Wordpressインストールフォルダのwp-contentフォルダにアップされた画像のみサイズが取得できます。外部サイトのURLからはサイズは取得できません。 PHPで設定さえしておけば、getimagesize()関数でストリームを用いてリモートからサイズを取得できるかもしれませんが、対応していません(取得に時間がかかりそうなので)。

関数の使い方

関数は、以下のように使用するとwidthとheightが入った連想配列を返します。

例えば以下のように書いたとすると、

$sizeは、以下のように返ってきます。

アイキャッチ画像からの取得例

例えば、投稿ページのアイキャッチ画像からwidth属性とheight属性を指定したHTMLタグを出力したい場合は、以下のように書きます。

すると、以下のようなIMGタグが出力されます。

見やすいように改行を入れてあります。

まとめ

WordPressの場合、単にwidth属性や、height属性が入ったimgタグなら、the_post_thumbnail()関数などを使用すれば、属性込みのタグが出力されます。

ただ、JSON-LDに記入する画像サイズを出力するときに、必要だったので、今回の関数を作成しました。

WordpressでAMPに対応した記事向けJSON-LDを出力する方法
Wordpressで投稿ごとにJSON-LDを出力するコードを書いたので紹介。 JSON-LDの書き方 サイト上の記事で、sch...

JSON-LD以外にも、AMPで画像表示(amp-imgの利用)をするときは、width・height属性の指定は必須です(JSON-LD自体もAMPの構造化データのためではあるけど)。

もし、「自分のWordpress内の画像URLのみから画像サイズを取得する必要がある」なんて事があれば、今回の関数を使用すると、結構手軽に取得できると思います。