attachment_url_to_postid()


WordPressの関数attachment_url_to_postid()は、添付ファイルのURLからその添付ファイルの投稿IDを取得するために使用されます。

シンタックス

attachment_url_to_postid( string $url );
  • $url (string) — 添付ファイルのURL。完全なURLを指定する必要があります。

例 1: 添付ファイルの投稿IDを取得

指定したURLから添付ファイルの投稿IDを取得する基本的な例です。

<?php
$url = wp_get_attachment_url( get_post_thumbnail_id( get_the_ID() ) );
$post_id = attachment_url_to_postid( $url );
echo $post_id;
?>

例 2: 添付ファイルのメタデータを取得

添付ファイルの投稿IDを使用して、そのメタデータを取得します。

<?php
$url = 'https://example.com/wp-content/uploads/2023/12/sample.jpg';
$post_id = attachment_url_to_postid( $url );
$metadata = wp_get_attachment_metadata( $post_id );
print_r( $metadata );
?>

例 3: 投稿のアイキャッチ画像の確認

投稿のアイキャッチ画像が特定の添付ファイルURLと一致するか確認します。

<?php
$thumbnail_url = wp_get_attachment_url( get_post_thumbnail_id( get_the_ID() ) );
$check_url = 'https://example.com/wp-content/uploads/2023/12/sample.jpg';
if ( attachment_url_to_postid( $thumbnail_url ) === attachment_url_to_postid( $check_url ) ) {
    echo '一致しました';
}
?>

例 4: 添付ファイルURLのバリデーション

指定されたURLが有効な添付ファイルであるか確認します。

<?php
$url = 'https://example.com/wp-content/uploads/2023/12/sample.jpg';
if ( attachment_url_to_postid( $url ) ) {
    echo '有効な添付ファイルです';
} else {
    echo '無効なURLです';
}
?>

例 5: 添付ファイルURLを使ったカスタム処理

投稿内の添付ファイルURLを取得してカスタム処理を行います。

<?php
$content = get_the_content();
preg_match_all( '/https:\/\/example\.com\/wp-content\/uploads\/\S+\.jpg/', $content, $matches );
foreach ( $matches[0] as $url ) {
    $post_id = attachment_url_to_postid( $url );
    if ( $post_id ) {
        echo '添付ファイルID: ' . $post_id . '<br>';
    }
}
?>

注意事項

  • 関数はURLが有効で、かつ添付ファイルとして登録されている場合にのみ投稿IDを返します。
  • URLが誤っている場合や、添付ファイルとして認識されない場合はfalseを返します。

関連機能: