WP_REST_Posts_Controller::create_item() – Creates a single post.

You appear to be a bot. Output may be restricted

Description

Creates a single post.

Usage

$WP_REST_Response|WP_Error = WP_REST_Posts_Controller::create_item( $request );

Parameters

$request
( WP_REST_Request ) required – Full details about the request.

Returns

WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.

Source

File name: wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
Lines:

101 to 143 of 143
      if ( is_wp_error( $meta_update ) ) {
        return $meta_update;
      }
    }

    $post          = get_post( $post_id );
    $fields_update = $this->update_additional_fields_for_object( $post, $request );

    if ( is_wp_error( $fields_update ) ) {
      return $fields_update;
    }

    $request->set_param( 'context', 'edit' );

    
/**
 * Fires after a single post is completely created or updated via the REST API.
 *
 * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
 *
 * Possible hook names include:
 *
 *  - `rest_after_insert_post`
 *  - `rest_after_insert_page`
 *  - `rest_after_insert_attachment`
 *
 * @since 5.0.0
 *
 * @param WP_Post         $post     Inserted or updated post object.
 * @param WP_REST_Request $request  Request object.
 * @param bool            $creating True when creating a post, false when updating.
 */
    do_action( "rest_after_insert_{$this->post_type}", $post, $request, true );

    wp_after_insert_post( $post, false, null );

    $response = $this->WP_REST_Posts_Controller::prepare_item_for_response( $post, $request );
    $response = rest_ensure_response( $response );

    $response->set_status( 201 );
    $response->header( 'Location', rest_url( rest_get_route_for_post( $post ) ) );

    return $response;
  }
 

 View on GitHub View on Trac