BP_Core_oEmbed_Extension::get_item( WP_REST_Request $request )
Callback for the API endpoint.
Description
Returns the JSON object for the item.
Parameters
- $request
-
(Required) Full data about the request.
Return
(WP_Error|array) oEmbed response data or WP_Error on failure.
Source
File: bp-core/classes/class-bp-core-oembed-extension.php
public function get_item( $request ) { $url = $request['url']; $data = false; $item_id = (int) $this->validate_url_to_item_id( $url ); if ( ! empty( $item_id ) ) { // Add markers to tell that we're embedding a single activity. // This is needed for various oEmbed response data filtering. if ( empty( buddypress()->{$this->slug_endpoint} ) ) { buddypress()->{$this->slug_endpoint} = new stdClass; } buddypress()->{$this->slug_endpoint}->embedurl_in_progress = $url; buddypress()->{$this->slug_endpoint}->embedid_in_progress = $item_id; // Save custom route args as well. $custom_args = array_keys( (array) $this->set_route_args() ); if ( ! empty( $custom_args ) ) { buddypress()->{$this->slug_endpoint}->embedargs_in_progress = array(); foreach( $custom_args as $arg ) { if ( isset( $request[ $arg ] ) ) { buddypress()->{$this->slug_endpoint}->embedargs_in_progress[ $arg ] = $request[ $arg ]; } } } // Grab custom oEmbed response data. $item = $this->set_oembed_response_data( $item_id ); // Set oEmbed response data. $data = $this->get_oembed_response_data( $item, $request['maxwidth'] ); } if ( ! $data ) { return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } return $data; }
Changelog
Version | Description |
---|---|
BuddyPress 2.6.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.