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;
}
}
}