attachment_url_to_postid() の使い方|説明・引数・注意点

説明

attachment_url_to_postid() は、添付ファイルのURLから、添付ファイルIDを取得する関数です。

基本構文

attachment_url_to_postid( string $url ): int

引数

  • $url:添付ファイルのURL

戻り値

添付ファイルのID。見つからなければ 0。

使い方(サンプル)

$id = attachment_url_to_postid( 'https://example.com/wp-content/uploads/2026/01/sample.jpg' );

注意点

  • リサイズ済み画像のURLではなく、元の画像のURLを渡す必要があります。
  • データベースを検索するため、多用すると重くなります。

実務での使いどころ

  • 画像のURLから、そのメディアのIDを調べるとき。

よくあるミスと対処

  • 外部のURLや、メディアにないURLでは 0 が返る。確認せずに使う。
  • データベースを検索するため、重い。繰り返し呼ぶ場合は、結果をキャッシュする。
  • サイズ違いのURL(-300x200 など)や、-scaled を含まない元のURLは、一致せず 0 になる。アップロード時に保存された、本体のURLを渡す。

NG例

$id = attachment_url_to_postid( $url );
echo wp_get_attachment_url( $id ); // 0 のときも処理してしまう

OK例

$id = attachment_url_to_postid( $url );
if ( $id ) {
	echo esc_url( wp_get_attachment_url( $id ) );
}

使い分け早見表

やりたいこと 使うもの
URLから、メディアのIDを取得 attachment_url_to_postid()
IDから、URLを取得 wp_get_attachment_url()
IDから、ファイルのパスを取得 get_attached_file()

関連項目

wp_get_attachment_url()、url_to_postid()

公式リファレンス:attachment_url_to_postid() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました