説明
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

コメント