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.