WP_REST_Terms_Controller::prepare_item_for_database()publicWP 4.7.0

Prepares a single term for create or update.

Method of the class: WP_REST_Terms_Controller{}

Return

Object. Term object.

Usage

$WP_REST_Terms_Controller = new WP_REST_Terms_Controller();
$WP_REST_Terms_Controller->prepare_item_for_database( $request );
$request(WP_REST_Request) (required)
Request object.

Changelog

Since 4.7.0 Introduced.

WP_REST_Terms_Controller::prepare_item_for_database() code WP 6.5.2

public function prepare_item_for_database( $request ) {
	$prepared_term = new stdClass();

	$schema = $this->get_item_schema();
	if ( isset( $request['name'] ) && ! empty( $schema['properties']['name'] ) ) {
		$prepared_term->name = $request['name'];
	}

	if ( isset( $request['slug'] ) && ! empty( $schema['properties']['slug'] ) ) {
		$prepared_term->slug = $request['slug'];
	}

	if ( isset( $request['taxonomy'] ) && ! empty( $schema['properties']['taxonomy'] ) ) {
		$prepared_term->taxonomy = $request['taxonomy'];
	}

	if ( isset( $request['description'] ) && ! empty( $schema['properties']['description'] ) ) {
		$prepared_term->description = $request['description'];
	}

	if ( isset( $request['parent'] ) && ! empty( $schema['properties']['parent'] ) ) {
		$parent_term_id   = 0;
		$requested_parent = (int) $request['parent'];

		if ( $requested_parent ) {
			$parent_term = get_term( $requested_parent, $this->taxonomy );

			if ( $parent_term instanceof WP_Term ) {
				$parent_term_id = $parent_term->term_id;
			}
		}

		$prepared_term->parent = $parent_term_id;
	}

	/**
	 * Filters term data before inserting term via the REST API.
	 *
	 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
	 *
	 * Possible hook names include:
	 *
	 *  - `rest_pre_insert_category`
	 *  - `rest_pre_insert_post_tag`
	 *
	 * @since 4.7.0
	 *
	 * @param object          $prepared_term Term object.
	 * @param WP_REST_Request $request       Request object.
	 */
	return apply_filters( "rest_pre_insert_{$this->taxonomy}", $prepared_term, $request );
}