Title: wp_xmlrpc_server::_prepare_media_item
Published: April 25, 2014
Last modified: May 20, 2026

---

# wp_xmlrpc_server::_prepare_media_item( WP_Post $media_item, string $thumbnail_size = 'thumbnail' ): array

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#source)
 * [Hooks](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#hooks)
 * [Related](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#related)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#wp--skip-link--target)

Prepares media item data for return in an XML-RPC object.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#parameters)󠁿

 `$media_item`[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)
required

The unprepared media item data.

`$thumbnail_size`stringoptional

The image size to use for the thumbnail URL.

Default:`'thumbnail'`

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#return)󠁿

 array The prepared media item data.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#source)󠁿

    ```php
    protected function _prepare_media_item( $media_item, $thumbnail_size = 'thumbnail' ) {
    	$_media_item = array(
    		'attachment_id'    => (string) $media_item->ID,
    		'date_created_gmt' => $this->_convert_date_gmt( $media_item->post_date_gmt, $media_item->post_date ),
    		'parent'           => $media_item->post_parent,
    		'link'             => wp_get_attachment_url( $media_item->ID ),
    		'title'            => $media_item->post_title,
    		'caption'          => $media_item->post_excerpt,
    		'description'      => $media_item->post_content,
    		'metadata'         => wp_get_attachment_metadata( $media_item->ID ),
    		'type'             => $media_item->post_mime_type,
    		'alt'              => get_post_meta( $media_item->ID, '_wp_attachment_image_alt', true ),
    	);

    	$thumbnail_src = image_downsize( $media_item->ID, $thumbnail_size );
    	if ( $thumbnail_src ) {
    		$_media_item['thumbnail'] = $thumbnail_src[0];
    	} else {
    		$_media_item['thumbnail'] = $_media_item['link'];
    	}

    	/**
    	 * Filters XML-RPC-prepared data for the given media item.
    	 *
    	 * @since 3.4.0
    	 *
    	 * @param array   $_media_item    An array of media item data.
    	 * @param WP_Post $media_item     Media item object.
    	 * @param string  $thumbnail_size Image size.
    	 */
    	return apply_filters( 'xmlrpc_prepare_media_item', $_media_item, $media_item, $thumbnail_size );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-xmlrpc-server.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/class-wp-xmlrpc-server.php#L1075)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/class-wp-xmlrpc-server.php#L1075-L1106)

## 󠀁[Hooks](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#hooks)󠁿

 [apply_filters( ‘xmlrpc_prepare_media_item’, array $_media_item, WP_Post $media_item, string $thumbnail_size )](https://developer.wordpress.org/reference/hooks/xmlrpc_prepare_media_item/)

Filters XML-RPC-prepared data for the given media item.

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#related)󠁿

| Uses | Description | 
| [image_downsize()](https://developer.wordpress.org/reference/functions/image_downsize/)`wp-includes/media.php` |

Scales an image to fit a particular size (such as ‘thumb’ or ‘medium’).

  | 
| [wp_get_attachment_url()](https://developer.wordpress.org/reference/functions/wp_get_attachment_url/)`wp-includes/post.php` |

Retrieves the URL for an attachment.

  | 
| [wp_get_attachment_metadata()](https://developer.wordpress.org/reference/functions/wp_get_attachment_metadata/)`wp-includes/post.php` |

Retrieves attachment metadata for attachment ID.

  | 
| [wp_xmlrpc_server::_convert_date_gmt()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_convert_date_gmt/)`wp-includes/class-wp-xmlrpc-server.php` |

Converts a WordPress GMT date string to an [IXR_Date](https://developer.wordpress.org/reference/classes/ixr_date/) object.

  | 
| [apply_filters()](https://developer.wordpress.org/reference/functions/apply_filters/)`wp-includes/plugin.php` |

Calls the callback functions that have been added to a filter hook.

  | 
| [get_post_meta()](https://developer.wordpress.org/reference/functions/get_post_meta/)`wp-includes/post.php` |

Retrieves a post meta field for the given post ID.

  |

[Show 2 more](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_media_item/?output_format=md#)

| Used by | Description | 
| [wp_xmlrpc_server::mw_newMediaObject()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_newmediaobject/)`wp-includes/class-wp-xmlrpc-server.php` |

Uploads a file, following your settings.

  | 
| [wp_xmlrpc_server::wp_getMediaItem()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getmediaitem/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a media item by ID.

  | 
| [wp_xmlrpc_server::wp_getMediaLibrary()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getmedialibrary/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a collection of media library items (or attachments).

  | 
| [wp_xmlrpc_server::_prepare_post()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_post/)`wp-includes/class-wp-xmlrpc-server.php` |

Prepares post data for return in an XML-RPC object.

  |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_xmlrpc_server%2F_prepare_media_item%2F)
before being able to contribute a note or feedback.