| 7183 | |
| 7184 | /** |
| 7185 | * Retrieve the URL to an original attachment image. |
| 7186 | * |
| 7187 | * Similar to `wp_get_attachment_url()` however some images may have been |
| 7188 | * processed after uploading. In this case this function returns the URL |
| 7189 | * to the originally uploaded image file. |
| 7190 | * |
| 7191 | * @since 5.3.0 |
| 7192 | * |
| 7193 | * @param int $attachment_id Attachment post ID. |
| 7194 | * @return string|false Attachment image URL, false on error or if the attachment is not an image. |
| 7195 | */ |
| 7196 | function wp_get_original_image_url( $attachment_id ) { |
| 7197 | if ( ! wp_attachment_is_image( $attachment_id ) ) { |
| 7198 | return false; |
| 7199 | } |
| 7200 | |
| 7201 | $image_url = wp_get_attachment_url( $attachment_id ); |
| 7202 | |
| 7203 | if ( empty( $image_url ) ) { |
| 7204 | return false; |
| 7205 | } |
| 7206 | |
| 7207 | $image_meta = wp_get_attachment_metadata( $attachment_id ); |
| 7208 | |
| 7209 | if ( empty( $image_meta['original_image'] ) ) { |
| 7210 | $original_image_url = $image_url; |
| 7211 | } else { |
| 7212 | $original_image_url = path_join( dirname( $image_url ), $image_meta['original_image'] ); |
| 7213 | } |
| 7214 | |
| 7215 | /** |
| 7216 | * Filters the URL to the original attachment image. |
| 7217 | * |
| 7218 | * @since 5.3.0 |
| 7219 | * |
| 7220 | * @param string $original_image_url URL to original image. |
| 7221 | * @param int $attachment_id Attachment ID. |
| 7222 | */ |
| 7223 | return apply_filters( 'wp_get_original_image_url', $original_image_url, $attachment_id ); |
| 7224 | } |