/** * Prepare a single comment output for response. * * @param object $comment Comment object. * @param WP_REST_Request $request Request object. * @return WP_REST_Response */ public function prepare_item_for_response($comment, $request) { $data = array('id' => (int) $comment->comment_ID, 'post' => (int) $comment->comment_post_ID, 'parent' => (int) $comment->comment_parent, 'author' => (int) $comment->user_id, 'author_name' => $comment->comment_author, 'author_email' => $comment->comment_author_email, 'author_url' => $comment->comment_author_url, 'author_ip' => $comment->comment_author_IP, 'author_avatar_urls' => rest_get_avatar_urls($comment->comment_author_email), 'author_user_agent' => $comment->comment_agent, 'date' => mysql_to_rfc3339($comment->comment_date), 'date_gmt' => mysql_to_rfc3339($comment->comment_date_gmt), 'content' => array('rendered' => apply_filters('comment_text', $comment->comment_content, $comment), 'raw' => $comment->comment_content), 'karma' => (int) $comment->comment_karma, 'link' => get_comment_link($comment), 'status' => $this->prepare_status_response($comment->comment_approved), 'type' => get_comment_type($comment->comment_ID)); $context = !empty($request['context']) ? $request['context'] : 'view'; $data = $this->filter_response_by_context($data, $context); $data = $this->add_additional_fields_to_object($data, $request); // Wrap the data in a response object $response = rest_ensure_response($data); $response->add_links($this->prepare_links($comment)); /** * Filter a comment returned from the API. * * Allows modification of the comment right before it is returned. * * @param WP_REST_Response $response The response object. * @param object $comment The original comment object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters('rest_prepare_comment', $response, $comment, $request); }
/** * Prepare a single user output for response * * @param object $user User object. * @param WP_REST_Request $request Request object. * @return WP_REST_Response Response data. */ public function prepare_item_for_response($user, $request) { $data = array('avatar_urls' => rest_get_avatar_urls($user->user_email), 'capabilities' => $user->allcaps, 'description' => $user->description, 'email' => $user->user_email, 'extra_capabilities' => $user->caps, 'first_name' => $user->first_name, 'id' => $user->ID, 'last_name' => $user->last_name, 'link' => get_author_posts_url($user->ID), 'name' => $user->display_name, 'nickname' => $user->nickname, 'registered_date' => date('c', strtotime($user->user_registered)), 'roles' => $user->roles, 'slug' => $user->user_nicename, 'url' => $user->user_url, 'username' => $user->user_login); $context = !empty($request['context']) ? $request['context'] : 'embed'; $data = $this->filter_response_by_context($data, $context); $data = $this->add_additional_fields_to_object($data, $request); // Wrap the data in a response object $data = rest_ensure_response($data); $data->add_links($this->prepare_links($user)); /** * Filter user data returned from the REST API. * * @param WP_REST_Response $data Response data. * @param object $user User object used to create response. * @param WP_REST_Request $request Request object. */ return apply_filters('rest_prepare_user', $data, $user, $request); }
/** * Prepares a single user output for response. * * @since 4.7.0 * @access public * * @param WP_User $user User object. * @param WP_REST_Request $request Request object. * @return WP_REST_Response Response object. */ public function prepare_item_for_response($user, $request) { $data = array(); $schema = $this->get_item_schema(); if (!empty($schema['properties']['id'])) { $data['id'] = $user->ID; } if (!empty($schema['properties']['username'])) { $data['username'] = $user->user_login; } if (!empty($schema['properties']['name'])) { $data['name'] = $user->display_name; } if (!empty($schema['properties']['first_name'])) { $data['first_name'] = $user->first_name; } if (!empty($schema['properties']['last_name'])) { $data['last_name'] = $user->last_name; } if (!empty($schema['properties']['email'])) { $data['email'] = $user->user_email; } if (!empty($schema['properties']['url'])) { $data['url'] = $user->user_url; } if (!empty($schema['properties']['description'])) { $data['description'] = $user->description; } if (!empty($schema['properties']['link'])) { $data['link'] = get_author_posts_url($user->ID, $user->user_nicename); } if (!empty($schema['properties']['locale'])) { $data['locale'] = get_user_locale($user); } if (!empty($schema['properties']['nickname'])) { $data['nickname'] = $user->nickname; } if (!empty($schema['properties']['slug'])) { $data['slug'] = $user->user_nicename; } if (!empty($schema['properties']['roles'])) { // Defensively call array_values() to ensure an array is returned. $data['roles'] = array_values($user->roles); } if (!empty($schema['properties']['registered_date'])) { $data['registered_date'] = date('c', strtotime($user->user_registered)); } if (!empty($schema['properties']['capabilities'])) { $data['capabilities'] = (object) $user->allcaps; } if (!empty($schema['properties']['extra_capabilities'])) { $data['extra_capabilities'] = (object) $user->caps; } if (!empty($schema['properties']['avatar_urls'])) { $data['avatar_urls'] = rest_get_avatar_urls($user->user_email); } if (!empty($schema['properties']['meta'])) { $data['meta'] = $this->meta->get_value($user->ID, $request); } $context = !empty($request['context']) ? $request['context'] : 'embed'; $data = $this->add_additional_fields_to_object($data, $request); $data = $this->filter_response_by_context($data, $context); // Wrap the data in a response object. $response = rest_ensure_response($data); $response->add_links($this->prepare_links($user)); /** * Filters user data returned from the REST API. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param object $user User object used to create response. * @param WP_REST_Request $request Request object. */ return apply_filters('rest_prepare_user', $response, $user, $request); }
/** * Prepare a single comment output for response. * * @param object $comment Comment object. * @param WP_REST_Request $request Request object. * @return WP_REST_Response */ public function prepare_item_for_response($comment, $request) { $data = array('id' => (int) $comment->comment_ID, 'post' => (int) $comment->comment_post_ID, 'parent' => (int) $comment->comment_parent, 'author' => (int) $comment->user_id, 'author_name' => $comment->comment_author, 'author_email' => $comment->comment_author_email, 'author_url' => $comment->comment_author_url, 'author_ip' => $comment->comment_author_IP, 'author_avatar_urls' => rest_get_avatar_urls($comment->comment_author_email), 'author_user_agent' => $comment->comment_agent, 'date' => mysql_to_rfc3339($comment->comment_date), 'date_gmt' => mysql_to_rfc3339($comment->comment_date_gmt), 'content' => array('rendered' => apply_filters('comment_text', $comment->comment_content, $comment), 'raw' => $comment->comment_content), 'karma' => (int) $comment->comment_karma, 'link' => get_comment_link($comment), 'status' => $this->prepare_status_response($comment->comment_approved), 'type' => get_comment_type($comment->comment_ID)); $context = !empty($request['context']) ? $request['context'] : 'view'; $data = $this->filter_response_by_context($data, $context); $data = $this->add_additional_fields_to_object($data, $request); // Wrap the data in a response object $data = rest_ensure_response($data); $data->add_links($this->prepare_links($comment)); return apply_filters('rest_prepare_comment', $data, $comment, $request); }