WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

WP_REST_Posts_Controller::update_item() WP 4.7.0

Updates a single post.

Это метод класса: WP_REST_Posts_Controller

Хуки из метода:
Возвращает

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

Использование

$WP_REST_Posts_Controller = new WP_REST_Posts_Controller();
$var = $WP_REST_Posts_Controller->update_item( $request );
$request(WP_REST_Request) (обязательный)
Full details about the request.

Код WP_REST_Posts_Controller::update_item: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php VER 5.0.1

<?php
public function update_item( $request ) {
	$valid_check = $this->get_post( $request['id'] );
	if ( is_wp_error( $valid_check ) ) {
		return $valid_check;
	}

	$post = $this->prepare_item_for_database( $request );

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

	// convert the post object to an array, otherwise wp_update_post will expect non-escaped input.
	$post_id = wp_update_post( wp_slash( (array) $post ), true );

	if ( is_wp_error( $post_id ) ) {
		if ( 'db_update_error' === $post_id->get_error_code() ) {
			$post_id->add_data( array( 'status' => 500 ) );
		} else {
			$post_id->add_data( array( 'status' => 400 ) );
		}
		return $post_id;
	}

	$post = get_post( $post_id );

	/** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php */
	do_action( "rest_insert_{$this->post_type}", $post, $request, false );

	$schema = $this->get_item_schema();

	if ( ! empty( $schema['properties']['format'] ) && ! empty( $request['format'] ) ) {
		set_post_format( $post, $request['format'] );
	}

	if ( ! empty( $schema['properties']['featured_media'] ) && isset( $request['featured_media'] ) ) {
		$this->handle_featured_media( $request['featured_media'], $post_id );
	}

	if ( ! empty( $schema['properties']['sticky'] ) && isset( $request['sticky'] ) ) {
		if ( ! empty( $request['sticky'] ) ) {
			stick_post( $post_id );
		} else {
			unstick_post( $post_id );
		}
	}

	if ( ! empty( $schema['properties']['template'] ) && isset( $request['template'] ) ) {
		$this->handle_template( $request['template'], $post->ID );
	}

	$terms_update = $this->handle_terms( $post->ID, $request );

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

	if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
		$meta_update = $this->meta->update_value( $request['meta'], $post->ID );

		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' );

	// Filter is fired in WP_REST_Attachments_Controller subclass.
	if ( 'attachment' === $this->post_type ) {
		$response = $this->prepare_item_for_response( $post, $request );
		return rest_ensure_response( $response );
	}

	/** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php */
	do_action( "rest_after_insert_{$this->post_type}", $post, $request, false );

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

	return rest_ensure_response( $response );
}