WP_REST_Posts_Controller::handle_terms PHP Method

handle_terms() protected method

Updates the post's terms from a REST request.
Since: 4.7.0
protected handle_terms ( integer $post_id, WP_REST_Request $request ) : null | WP_Error
$post_id integer The post ID to update the terms form.
$request WP_REST_Request The request object with post and terms data.
return null | WP_Error WP_Error on an error assigning any of the terms, otherwise null.
    protected function handle_terms($post_id, $request)
    {
        $taxonomies = wp_list_filter(get_object_taxonomies($this->post_type, 'objects'), array('show_in_rest' => true));
        foreach ($taxonomies as $taxonomy) {
            $base = !empty($taxonomy->rest_base) ? $taxonomy->rest_base : $taxonomy->name;
            if (!isset($request[$base])) {
                continue;
            }
            $result = wp_set_object_terms($post_id, $request[$base], $taxonomy->name);
            if (is_wp_error($result)) {
                return $result;
            }
        }
    }