mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 09:37:42 +01:00
REST API: Introduce rest_{$this->post_type}_item_schema filter to enable manipulation of schema values.
register_rest_field can be used to add properties to a schema, but no mechanism existed to alter existing properties like "content". Running the schema through this filter lets plugins append additional sub-properties to existing schema definitions. Props luisherranz, TimothyBlynJacobs, swissspidy, westonruter, kadamwhite. Fixes #47779. Built from https://develop.svn.wordpress.org/trunk@47265 git-svn-id: http://core.svn.wordpress.org/trunk@47065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
97524fd300
commit
c85c8f5235
@ -2406,6 +2406,27 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
|
|||||||
$schema['links'] = $schema_links;
|
$schema['links'] = $schema_links;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Take a snapshot of which fields are in the schema pre-filtering.
|
||||||
|
$schema_fields = array_keys( $schema['properties'] );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the post's schema.
|
||||||
|
*
|
||||||
|
* The dynamic portion of the filter, `$this->post_type`, refers to the
|
||||||
|
* post type slug for the controller.
|
||||||
|
*
|
||||||
|
* @since 5.4.0
|
||||||
|
*
|
||||||
|
* @param array $schema Item schema data.
|
||||||
|
*/
|
||||||
|
$schema = apply_filters( "rest_{$this->post_type}_item_schema", $schema );
|
||||||
|
|
||||||
|
// Emit a _doing_it_wrong warning if user tries to add new properties using this filter.
|
||||||
|
$new_fields = array_diff( array_keys( $schema['properties'] ), $schema_fields );
|
||||||
|
if ( count( $new_fields ) > 0 ) {
|
||||||
|
_doing_it_wrong( __METHOD__, __( 'Please use register_rest_field to add new schema properties.' ), '5.4.0' );
|
||||||
|
}
|
||||||
|
|
||||||
$this->schema = $schema;
|
$this->schema = $schema;
|
||||||
|
|
||||||
return $this->add_additional_fields_schema( $this->schema );
|
return $this->add_additional_fields_schema( $this->schema );
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '5.4-alpha-47264';
|
$wp_version = '5.4-alpha-47265';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
Loading…
Reference in New Issue
Block a user