今回は、WordPressでメディアにアップロードした画像のURLから、画像ID(メディアID)を取得する方法をメモ。
例えば、テーマカスタマイザーで画像をアップロードして設定できるようにしている場合、その画像のデータはURLの文字列情報として保存されていますが、(基本的な手法で画像を設定できるようにしている場合)
カスタマイザーで設定された画像のサムネイルサイズ版を取得して、画像を遅延読み込みさせる時のプレースホルダーとして設置したいケースなどでは、URL情報を元に画像IDを取得する必要がでてきます。
ちょうどそのケースに遭遇したので少し調べてみると、attachment_url_to_postid()
というめちゃくちゃ便利な関数が用意されていることを知りました。
使い方は簡単で、引数に画像のURLを指定するだけ。(メディアへアップロードされている画像のURL)
例
$url = 'https://example.com/wp-content/uploads/2019/img_path.jpg';
$img_id = attachment_url_to_postid( $url );
こうするだけで、$img_id
にその画像のIDが代入されます。
この時、IDが見つからなければ0
を返します。
そもそもWordPressの「メディア」にアプロードされている画像じゃないとIDを持ちませんので、メディアにアップロードされれいる画像にのみ使えます。
コメント