WP_REST_Users_Controller::get_item_schema PHP Method

get_item_schema() public method

Retrieves the user's schema, conforming to JSON Schema.
Since: 4.7.0
public get_item_schema ( ) : array
return array Item schema data.
    public function get_item_schema()
    {
        $schema = array('$schema' => 'http://json-schema.org/schema#', 'title' => 'user', 'type' => 'object', 'properties' => array('id' => array('description' => __('Unique identifier for the user.'), 'type' => 'integer', 'context' => array('embed', 'view', 'edit'), 'readonly' => true), 'username' => array('description' => __('Login name for the user.'), 'type' => 'string', 'context' => array('edit'), 'required' => true, 'arg_options' => array('sanitize_callback' => array($this, 'check_username'))), 'name' => array('description' => __('Display name for the user.'), 'type' => 'string', 'context' => array('embed', 'view', 'edit'), 'arg_options' => array('sanitize_callback' => 'sanitize_text_field')), 'first_name' => array('description' => __('First name for the user.'), 'type' => 'string', 'context' => array('edit'), 'arg_options' => array('sanitize_callback' => 'sanitize_text_field')), 'last_name' => array('description' => __('Last name for the user.'), 'type' => 'string', 'context' => array('edit'), 'arg_options' => array('sanitize_callback' => 'sanitize_text_field')), 'email' => array('description' => __('The email address for the user.'), 'type' => 'string', 'format' => 'email', 'context' => array('edit'), 'required' => true), 'url' => array('description' => __('URL of the user.'), 'type' => 'string', 'format' => 'uri', 'context' => array('embed', 'view', 'edit')), 'description' => array('description' => __('Description of the user.'), 'type' => 'string', 'context' => array('embed', 'view', 'edit')), 'link' => array('description' => __('Author URL of the user.'), 'type' => 'string', 'format' => 'uri', 'context' => array('embed', 'view', 'edit'), 'readonly' => true), 'locale' => array('description' => __('Locale for the user.'), 'type' => 'string', 'enum' => array_merge(array('', 'en_US'), get_available_languages()), 'context' => array('edit')), 'nickname' => array('description' => __('The nickname for the user.'), 'type' => 'string', 'context' => array('edit'), 'arg_options' => array('sanitize_callback' => 'sanitize_text_field')), 'slug' => array('description' => __('An alphanumeric identifier for the user.'), 'type' => 'string', 'context' => array('embed', 'view', 'edit'), 'arg_options' => array('sanitize_callback' => array($this, 'sanitize_slug'))), 'registered_date' => array('description' => __('Registration date for the user.'), 'type' => 'string', 'format' => 'date-time', 'context' => array('edit'), 'readonly' => true), 'roles' => array('description' => __('Roles assigned to the user.'), 'type' => 'array', 'items' => array('type' => 'string'), 'context' => array('edit')), 'password' => array('description' => __('Password for the user (never included).'), 'type' => 'string', 'context' => array(), 'required' => true, 'arg_options' => array('sanitize_callback' => array($this, 'check_user_password'))), 'capabilities' => array('description' => __('All capabilities assigned to the user.'), 'type' => 'object', 'context' => array('edit'), 'readonly' => true), 'extra_capabilities' => array('description' => __('Any extra capabilities assigned to the user.'), 'type' => 'object', 'context' => array('edit'), 'readonly' => true)));
        if (get_option('show_avatars')) {
            $avatar_properties = array();
            $avatar_sizes = rest_get_avatar_sizes();
            foreach ($avatar_sizes as $size) {
                $avatar_properties[$size] = array('description' => sprintf(__('Avatar URL with image size of %d pixels.'), $size), 'type' => 'string', 'format' => 'uri', 'context' => array('embed', 'view', 'edit'));
            }
            $schema['properties']['avatar_urls'] = array('description' => __('Avatar URLs for the user.'), 'type' => 'object', 'context' => array('embed', 'view', 'edit'), 'readonly' => true, 'properties' => $avatar_properties);
        }
        $schema['properties']['meta'] = $this->meta->get_field_schema();
        return $this->add_additional_fields_schema($schema);
    }