Title: wp_xmlrpc_server::_prepare_post_type
Published: April 25, 2014
Last modified: August 20, 2026

---

# wp_xmlrpc_server::_prepare_post_type( WP_Post_Type $post_type, array $fields ): array

## In this article

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

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

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

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

 `$post_type`[WP_Post_Type](https://developer.wordpress.org/reference/classes/wp_post_type/)
required

Post type object.

`$fields`arrayrequired

The subset of post fields to return.

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

 array The prepared post type data.

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

    ```php
    protected function _prepare_post_type( $post_type, $fields ) {
    	$_post_type = array(
    		'name'         => $post_type->name,
    		'label'        => $post_type->label,
    		'hierarchical' => (bool) $post_type->hierarchical,
    		'public'       => (bool) $post_type->public,
    		'show_ui'      => (bool) $post_type->show_ui,
    		'_builtin'     => (bool) $post_type->_builtin,
    		'has_archive'  => (bool) $post_type->has_archive,
    		'supports'     => get_all_post_type_supports( $post_type->name ),
    	);

    	if ( in_array( 'labels', $fields, true ) ) {
    		$_post_type['labels'] = (array) $post_type->labels;
    	}

    	if ( in_array( 'cap', $fields, true ) ) {
    		$_post_type['cap']          = (array) $post_type->cap;
    		$_post_type['map_meta_cap'] = (bool) $post_type->map_meta_cap;
    	}

    	if ( in_array( 'menu', $fields, true ) ) {
    		$_post_type['menu_position'] = (int) $post_type->menu_position;
    		$_post_type['menu_icon']     = $post_type->menu_icon;
    		$_post_type['show_in_menu']  = (bool) $post_type->show_in_menu;
    	}

    	if ( in_array( 'taxonomies', $fields, true ) ) {
    		$_post_type['taxonomies'] = get_object_taxonomies( $post_type->name, 'names' );
    	}

    	/**
    	 * Filters XML-RPC-prepared date for the given post type.
    	 *
    	 * @since 3.4.0
    	 * @since 4.6.0 Converted the `$post_type` parameter to accept a WP_Post_Type object.
    	 *
    	 * @param array        $_post_type An array of post type data.
    	 * @param WP_Post_Type $post_type  Post type object.
    	 */
    	return apply_filters( 'xmlrpc_prepare_post_type', $_post_type, $post_type );
    }
    ```

[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.1/src/wp-includes/class-wp-xmlrpc-server.php#L1028)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/class-wp-xmlrpc-server.php#L1028-L1069)

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

 [apply_filters( ‘xmlrpc_prepare_post_type’, array $_post_type, WP_Post_Type $post_type )](https://developer.wordpress.org/reference/hooks/xmlrpc_prepare_post_type/)

Filters XML-RPC-prepared date for the given post type.

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

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

Returns the names or objects of the taxonomies which are registered for the requested object or object type, such as a post object or post type name.

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

Gets all the post type features

  | 
| [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.

  |

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

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

Retrieves a post type.

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

Retrieves post types.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_prepare_post_type/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.6.0](https://developer.wordpress.org/reference/since/4.6.0/) | Converted the `$post_type` parameter to accept a [WP_Post_Type](https://developer.wordpress.org/reference/classes/wp_post_type/) object. | 
| [3.4.0](https://developer.wordpress.org/reference/since/3.4.0/) | Introduced. |

## 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_post_type%2F)
before being able to contribute a note or feedback.