WP_REST_Block_Directory_Controller::prepare_item_for_response()
Parse block metadata for a block, and prepare it for an API response.
Метод класса: WP_REST_Block_Directory_Controller{}
Хуков нет.
Возвращает
WP_REST_Response|WP_Error
. Response object on success, or WP_Error object on failure.
Использование
$WP_REST_Block_Directory_Controller = new WP_REST_Block_Directory_Controller(); $WP_REST_Block_Directory_Controller->prepare_item_for_response( $item, $request );
- $item(массив) (обязательный)
- The plugin metadata.
- $request(WP_REST_Request) (обязательный)
- Request object.
Список изменений
С версии 5.5.0 | Введена. |
С версии 5.9.0 | Renamed $plugin to $item to match parent class for PHP 8 named parameter support. |
Код WP_REST_Block_Directory_Controller::prepare_item_for_response() WP REST Block Directory Controller::prepare item for response WP 6.6.1
public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $plugin = $item; $fields = $this->get_fields_for_response( $request ); // There might be multiple blocks in a plugin. Only the first block is mapped. $block_data = reset( $plugin['blocks'] ); // A data array containing the properties we'll return. $block = array( 'name' => $block_data['name'], 'title' => ( $block_data['title'] ? $block_data['title'] : $plugin['name'] ), 'description' => wp_trim_words( $plugin['short_description'], 30, '...' ), 'id' => $plugin['slug'], 'rating' => $plugin['rating'] / 20, 'rating_count' => (int) $plugin['num_ratings'], 'active_installs' => (int) $plugin['active_installs'], 'author_block_rating' => $plugin['author_block_rating'] / 20, 'author_block_count' => (int) $plugin['author_block_count'], 'author' => wp_strip_all_tags( $plugin['author'] ), 'icon' => ( isset( $plugin['icons']['1x'] ) ? $plugin['icons']['1x'] : 'block-default' ), 'last_updated' => gmdate( 'Y-m-d\TH:i:s', strtotime( $plugin['last_updated'] ) ), 'humanized_updated' => sprintf( /* translators: %s: Human-readable time difference. */ __( '%s ago' ), human_time_diff( strtotime( $plugin['last_updated'] ) ) ), ); $this->add_additional_fields_to_object( $block, $request ); $response = new WP_REST_Response( $block ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $plugin ) ); } return $response; }