wp/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php
changeset 19 3d72ae0968f4
parent 18 be944660c56a
child 21 48c4eec2b7e6
equal deleted inserted replaced
18:be944660c56a 19:3d72ae0968f4
   211 
   211 
   212 	/**
   212 	/**
   213 	 * Prepares a post status object for serialization.
   213 	 * Prepares a post status object for serialization.
   214 	 *
   214 	 *
   215 	 * @since 4.7.0
   215 	 * @since 4.7.0
   216 	 *
   216 	 * @since 5.9.0 Renamed `$status` to `$item` to match parent class for PHP 8 named parameter support.
   217 	 * @param stdClass        $status  Post status data.
   217 	 *
       
   218 	 * @param stdClass        $item    Post status data.
   218 	 * @param WP_REST_Request $request Full details about the request.
   219 	 * @param WP_REST_Request $request Full details about the request.
   219 	 * @return WP_REST_Response Post status data.
   220 	 * @return WP_REST_Response Post status data.
   220 	 */
   221 	 */
   221 	public function prepare_item_for_response( $status, $request ) {
   222 	public function prepare_item_for_response( $item, $request ) {
   222 
   223 		// Restores the more descriptive, specific name for use within this method.
       
   224 		$status = $item;
   223 		$fields = $this->get_fields_for_response( $request );
   225 		$fields = $this->get_fields_for_response( $request );
   224 		$data   = array();
   226 		$data   = array();
   225 
   227 
   226 		if ( in_array( 'name', $fields, true ) ) {
   228 		if ( in_array( 'name', $fields, true ) ) {
   227 			$data['name'] = $status->label;
   229 			$data['name'] = $status->label;
   259 		$data    = $this->add_additional_fields_to_object( $data, $request );
   261 		$data    = $this->add_additional_fields_to_object( $data, $request );
   260 		$data    = $this->filter_response_by_context( $data, $context );
   262 		$data    = $this->filter_response_by_context( $data, $context );
   261 
   263 
   262 		$response = rest_ensure_response( $data );
   264 		$response = rest_ensure_response( $data );
   263 
   265 
       
   266 		$rest_url = rest_url( rest_get_route_for_post_type_items( 'post' ) );
   264 		if ( 'publish' === $status->name ) {
   267 		if ( 'publish' === $status->name ) {
   265 			$response->add_link( 'archives', rest_url( 'wp/v2/posts' ) );
   268 			$response->add_link( 'archives', $rest_url );
   266 		} else {
   269 		} else {
   267 			$response->add_link( 'archives', add_query_arg( 'status', $status->name, rest_url( 'wp/v2/posts' ) ) );
   270 			$response->add_link( 'archives', add_query_arg( 'status', $status->name, $rest_url ) );
   268 		}
   271 		}
   269 
   272 
   270 		/**
   273 		/**
   271 		 * Filters a post status returned from the REST API.
   274 		 * Filters a post status returned from the REST API.
   272 		 *
   275 		 *