register_rest_field( string|array $object_type, string $attribute, array $args = array() )
Registers a new field on an existing WordPress object type.
Parameters
-
$object_type
string|array Required -
Object(s) the field is being registered to, "post"|"term"|"comment" etc.
-
$attribute
string Required -
The attribute name.
-
$args
array Optional -
An array of arguments used to handle the registered field.
get_callback
callable|nullOptional. The callback function used to retrieve the field value. Default is'null'
, the field will not be returned in the response. The function will be passed the prepared object data.update_callback
callable|nullOptional. The callback function used to set and update the field value. Default is'null'
, the value cannot be set or updated. The function will be passed the model object, like WP_Post.schema
array|nullOptional. The schema for this field.
Default is'null'
, no schema entry will be returned.
Default:
array()
Source
File: wp-includes/rest-api.php
.
View all references
function register_rest_field( $object_type, $attribute, $args = array() ) {
global $wp_rest_additional_fields;
$defaults = array(
'get_callback' => null,
'update_callback' => null,
'schema' => null,
);
$args = wp_parse_args( $args, $defaults );
$object_types = (array) $object_type;
foreach ( $object_types as $object_type ) {
$wp_rest_additional_fields[ $object_type ][ $attribute ] = $args;
}
}
Changelog
Version | Description |
---|---|
4.7.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
To make use of
sanitize_callback
andvalidate_callback
, pass those inarg_options
inschema
GET callbacks accept up to 4 arguments in order…
register_rest_field()
declaration.register_rest_field()
declaration.Post callbacks accept the above arguments but also a 5th argument in the first position which is the value being passed from the POST request to the attribute/field.
Top ↑
Feedback
The order for update callback is not correct (anymore?). As of March 2018, WordPress 4.9.4 the order of arguments in update_callback: $metaValue, $object, $metaKey. — By aepp —
The first argument in the get is post array, not object. Thanks for this tip, I was looking on how to add REST request and this saved me tons of time. — By Denis Žoljom —
The fourth parameter is no longer accepted. — By Mark Howells-Mead —
An example to add all of the post meta to a
post-meta-fields
field:This can be extended or edited. For example, if you don’t want to include all the post meta, you can filter it, or return only the field you need. The options are limitless, but the callback gives you access to the post object, which exposes the
id
among other parameters, so you can use many different helper functions.This code works (also with shipped Backbone client) in WordPress 4.9.4:
An example to add post featured image src to the ‘featured_image_src’ field.
Helpful for showing featured image in gutenberg block development when posts are fetched with withSelect() function.
Custom sql queries can be achieved to get whatever value you want from database. The following queries shows how can we modify rest output to show something from our custom table ‘wp_it_job_details’ which is, of course, inside WordPress database. Put it in your themes/plugins functions.php
Top ↑
Feedback
This update_callback returns an error, since $comment_obj is an instance of \WP_Post. It should be instead $comment_obj->ID. — By aepp —