| | 5411 | |
| | 5412 | /** |
| | 5413 | * Retrieves attachment data. |
| | 5414 | * |
| | 5415 | * You can optionally pass the image id to retrive data outside the loop |
| | 5416 | * |
| | 5417 | * The function uses get_post() & get_post_meta() |
| | 5418 | * |
| | 5419 | * If size( eg.- thumbnail) is specified it replaces the src, width, height params with new |
| | 5420 | * |
| | 5421 | * @param int $image_id Image ID. |
| | 5422 | * @param string $size The image size. |
| | 5423 | * @return array|bool the data (array) on success or false (bool) |
| | 5424 | */ |
| | 5425 | function get_attachement($image_id = NULL, $size = NULL) { |
| | 5426 | |
| | 5427 | $id = isset($image_id) ? $image_id : get_the_id(); |
| | 5428 | |
| | 5429 | if ( !$attach_data = get_post($id) ) |
| | 5430 | return false; |
| | 5431 | if ( 'attachment' != $attach_data->post_type ) |
| | 5432 | return false; |
| | 5433 | if( !$attach_meta = get_post_meta($id) ) |
| | 5434 | return $attach_data; |
| | 5435 | |
| | 5436 | $attach_data = array_merge( (array)$attach_data, $attach_meta ); |
| | 5437 | $meta_data = maybe_unserialize( $attach_data['_wp_attachment_metadata'][0] ); |
| | 5438 | |
| | 5439 | $attachment = array( |
| | 5440 | 'ID' => $attach_data['ID'] |
| | 5441 | , 'date' => $attach_data['post_date'] |
| | 5442 | , 'title' => $attach_data['post_title'] |
| | 5443 | , 'description' => $attach_data['post_content'] |
| | 5444 | , 'caption' => $attach_data['post_excerpt'] |
| | 5445 | , 'src' => $attach_data['guid'] |
| | 5446 | , 'alt' => isset( $attach_data['_wp_attachment_image_alt'][0] ) ? $attach_data['_wp_attachment_image_alt'][0] : '' |
| | 5447 | , 'width' => $meta_data['width'] |
| | 5448 | , 'height' => $meta_data['height'] |
| | 5449 | , 'meta' => $meta_data['image_meta'] |
| | 5450 | ); |
| | 5451 | |
| | 5452 | if( !isset($size) ) |
| | 5453 | return $attachment; |
| | 5454 | |
| | 5455 | $image_size = wp_get_attachment_image_src($id, $size); |
| | 5456 | |
| | 5457 | if( !is_array( $image_size ) ) |
| | 5458 | return $attachment; |
| | 5459 | |
| | 5460 | $attachment = array_merge($attachment, array( |
| | 5461 | 'src' => $image_size[0] |
| | 5462 | , 'width' => $image_size[1] |
| | 5463 | , 'height' => $image_size[2] |
| | 5464 | )); |
| | 5465 | |
| | 5466 | if( isset($attachment) ) |
| | 5467 | return $attachment; |
| | 5468 | |
| | 5469 | return false; |
| | 5470 | |
| | 5471 | } |