Summery Summery
Prepares a post type object for serialization.
Syntax Syntax
Parameters Parameters
- $post_type
-
(Required) Post type object.
- $request
-
(Required) Full details about the request.
Return Return
(WP_REST_Response) Response object.
Source Source
File: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
*/ public function prepare_item_for_response( $post_type, $request ) { $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) ); $taxonomies = wp_list_pluck( $taxonomies, 'name' ); $base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name; $supports = get_all_post_type_supports( $post_type->name ); $fields = $this->get_fields_for_response( $request ); $data = array(); if ( in_array( 'capabilities', $fields, true ) ) { $data['capabilities'] = $post_type->cap; } if ( in_array( 'description', $fields, true ) ) { $data['description'] = $post_type->description; } if ( in_array( 'hierarchical', $fields, true ) ) { $data['hierarchical'] = $post_type->hierarchical; } if ( in_array( 'viewable', $fields, true ) ) { $data['viewable'] = is_post_type_viewable( $post_type ); } if ( in_array( 'labels', $fields, true ) ) { $data['labels'] = $post_type->labels; } if ( in_array( 'name', $fields, true ) ) { $data['name'] = $post_type->label; } if ( in_array( 'slug', $fields, true ) ) { $data['slug'] = $post_type->name; } if ( in_array( 'supports', $fields, true ) ) { $data['supports'] = $supports; } if ( in_array( 'taxonomies', $fields, true ) ) { $data['taxonomies'] = array_values( $taxonomies ); } if ( in_array( 'rest_base', $fields, true ) ) { $data['rest_base'] = $base; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); $response->add_links( array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( sprintf( 'wp/v2/%s', $base ) ), ), ) ); /** * Filters a post type returned from the API. * * Allows modification of the post type data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Post_Type $post_type The original post type object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request );
Advertisement
Changelog Changelog
Version | Description |
---|---|
4.7.0 | Introduced. |