Submit
Path:
~
/
home
/
bfxleof
/
www
/
wp-includes
/
js
/
jquery
/
ui
/
File Content:
class-wp-oembed-controller-20260621150705.php
<?php /** * WP_oEmbed_Controller class, used to provide an oEmbed endpoint. * * @package WordPress * @subpackage Embeds * @since 4.4.0 */ /** * oEmbed API endpoint controller. * * Registers the REST API route and delivers the response data. * The output format (XML or JSON) is handled by the REST API. * * @since 4.4.0 */ final class WP_oEmbed_Controller { /** * Register the oEmbed REST API route. * * @since 4.4.0 */ public function register_routes() { /** * Filters the maxwidth oEmbed parameter. * * @since 4.4.0 * * @param int $maxwidth Maximum allowed width. Default 600. */ $maxwidth = apply_filters( 'oembed_default_width', 600 ); register_rest_route( 'oembed/1.0', '/embed', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'default' => 'json', 'sanitize_callback' => 'wp_oembed_ensure_format', ), 'maxwidth' => array( 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), ), ), ) ); register_rest_route( 'oembed/1.0', '/proxy', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_proxy_item' ), 'permission_callback' => array( $this, 'get_proxy_item_permissions_check' ), 'args' => array( 'url' => array( 'description' => __( 'The URL of the resource for which to fetch oEmbed data.' ), 'required' => true, 'type' => 'string', 'format' => 'uri', ), 'format' => array( 'description' => __( 'The oEmbed format to use.' ), 'type' => 'string', 'default' => 'json', 'enum' => array( 'json', 'xml', ), ), 'maxwidth' => array( 'description' => __( 'The maximum width of the embed frame in pixels.' ), 'type' => 'integer', 'default' => $maxwidth, 'sanitize_callback' => 'absint', ), 'maxheight' => array( 'description' => __( 'The maximum height of the embed frame in pixels.' ), 'type' => 'integer', 'sanitize_callback' => 'absint', ), 'discover' => array( 'description' => __( 'Whether to perform an oEmbed discovery request for unsanctioned providers.' ), 'type' => 'boolean', 'default' => true, ), ), ), ) ); } /** * Callback for the embed API endpoint. * * Returns the JSON object for the post. * * @since 4.4.0 * * @param WP_REST_Request $request Full data about the request. * @return array|WP_Error oEmbed response data or WP_Error on failure. */ public function get_item( $request ) { $post_id = url_to_postid( $request['url'] ); /** * Filters the determined post ID. * * @since 4.4.0 * * @param int $post_id The post ID. * @param string $url The requested URL. */ $post_id = apply_filters( 'oembed_request_post_id', $post_id, $request['url'] ); $data = get_oembed_response_data( $post_id, $request['maxwidth'] ); if ( ! $data ) { return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } return $data; } /** * Checks if current user can make a proxy oEmbed request. * * @since 4.8.0 * * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_proxy_item_permissions_check() { if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'rest_forbidden', __( 'Sorry, you are not allowed to make proxied oEmbed requests.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Callback for the proxy API endpoint. * * Returns the JSON object for the proxied item. * * @since 4.8.0 * * @see WP_oEmbed::get_html() * @param WP_REST_Request $request Full data about the request. * @return object|WP_Error oEmbed response data or WP_Error on failure. */ public function get_proxy_item( $request ) { $args = $request->get_params(); // Serve oEmbed data from cache if set. unset( $args['_wpnonce'] ); $cache_key = 'oembed_' . md5( serialize( $args ) ); $data = get_transient( $cache_key ); if ( ! empty( $data ) ) { return $data; } $url = $request['url']; unset( $args['url'] ); // Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names. if ( isset( $args['maxwidth'] ) ) { $args['width'] = $args['maxwidth']; } if ( isset( $args['maxheight'] ) ) { $args['height'] = $args['maxheight']; } // Short-circuit process for URLs belonging to the current site. $data = get_oembed_response_data_for_url( $url, $args ); if ( $data ) { return $data; } $data = _wp_oembed_get_object()->get_data( $url, $args ); if ( false === $data ) { // Try using a classic embed, instead. global $wp_embed; /* @var WP_Embed $wp_embed */ $html = $wp_embed->get_embed_handler_html( $args, $url ); if ( $html ) { global $wp_scripts; // Check if any scripts were enqueued by the shortcode, and include them in the response. $enqueued_scripts = array(); foreach ( $wp_scripts->queue as $script ) { $enqueued_scripts[] = $wp_scripts->registered[ $script ]->src; } return (object) array( 'provider_name' => __( 'Embed Handler' ), 'html' => $html, 'scripts' => $enqueued_scripts, ); } return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) ); } /** This filter is documented in wp-includes/class-wp-oembed.php */ $data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args ); /** * Filters the oEmbed TTL value (time to live). * * Similar to the {@see 'oembed_ttl'} filter, but for the REST API * oEmbed proxy endpoint. * * @since 4.8.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $args An array of embed request arguments. */ $ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args ); set_transient( $cache_key, $data, $ttl ); return $data; } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
Exception.php
1214 bytes
0644
SMTP.php
47285 bytes
0644
accordion.js
15864 bytes
0644
accordion.min.js
8663 bytes
0644
autocomplete.js
17607 bytes
0644
autocomplete.min.js
8539 bytes
0644
autoload.php
2731 bytes
0644
button.js
9975 bytes
0644
button.min.js
5570 bytes
0644
checkboxradio.js
7510 bytes
0644
checkboxradio.min.js
4368 bytes
0644
class-json.php
43441 bytes
0644
class-walker-category-dropdown.php
2133 bytes
0644
class-walker-page-dropdown-20260703062052.php
2299 bytes
0644
class-wp-locale.php
13982 bytes
0644
class-wp-network-query.php
19169 bytes
0644
class-wp-network.php
12379 bytes
0644
class-wp-oembed-controller-20260621150705.php
6793 bytes
0644
class-wp-sitemaps-posts.php
5875 bytes
0644
class-wp-theme.php
51601 bytes
0644
comment-20260622000420.php
126193 bytes
0644
controlgroup-20260703123156.js
8564 bytes
0644
controlgroup.js
8564 bytes
0644
core.js
48955 bytes
0644
core.min.js
20787 bytes
0644
data.js
147192 bytes
0644
datepicker.js
80771 bytes
0644
datepicker.min.js
36148 bytes
0644
dialog.js
23055 bytes
0644
dialog.min.js
12782 bytes
0644
draggable.js
35343 bytes
0644
draggable.min.js
18291 bytes
0644
droppable.js
12817 bytes
0644
droppable.min.js
6581 bytes
0644
effect-blind.js
1592 bytes
0644
effect-bounce-20260702214147.js
2608 bytes
0644
effect-bounce.js
2608 bytes
0644
effect-bounce.min.js
949 bytes
0644
effect-clip.min.js
754 bytes
0644
effect-drop.js
1543 bytes
0644
effect-drop.min.js
709 bytes
0644
effect-explode-20260622005847.js
2882 bytes
0644
effect-fade.js
916 bytes
0644
effect-fade.min.js
483 bytes
0644
effect-fold.js
2133 bytes
0644
effect-fold.min.js
978 bytes
0644
effect-highlight.js
1191 bytes
0644
effect-highlight.min.js
606 bytes
0644
effect-puff.js
943 bytes
0644
effect-puff.min.js
468 bytes
0644
effect-pulsate.js
1515 bytes
0644
effect-pulsate.min.js
646 bytes
0644
effect-scale.js
1321 bytes
0644
effect-scale.min-20260703173741.js
681 bytes
0644
effect-scale.min.js
681 bytes
0644
effect-shake.js
1832 bytes
0644
effect-shake.min.js
804 bytes
0644
effect-size.js
5315 bytes
0644
effect-size.min.js
2408 bytes
0644
effect-slide.js
1915 bytes
0644
effect-slide.min.js
875 bytes
0644
effect-transfer.js
836 bytes
0644
effect-transfer.min.js
400 bytes
0644
effect.js
40846 bytes
0644
effect.min.js
16920 bytes
0644
https-detection-20260623211809-20260706173122.php
6871 bytes
0644
https-detection-20260623211809.php
6871 bytes
0644
https-migration-20260621222700-20260622020253.php
4730 bytes
0644
https-migration-20260622015741.php
4730 bytes
0644
https-migration-20260622194220.php
4730 bytes
0644
menu.js
17775 bytes
0644
menu.min.js
9531 bytes
0644
mouse.js
6123 bytes
0644
mouse.min.js
3380 bytes
0644
ms-blogs.php
25174 bytes
0644
nav-menu-template.php
23296 bytes
0644
php72compat_const.php
4597 bytes
0644
plural-forms.php
7612 bytes
0644
progressbar-20260622011138.js
4195 bytes
0644
progressbar.min.js
2514 bytes
0644
resizable.js
29924 bytes
0644
resizable.min.js
18472 bytes
0644
revision.php
22027 bytes
0644
selectable.js
8065 bytes
0644
selectable.min.js
4456 bytes
0644
selectmenu.js
16053 bytes
0644
selectmenu.min.js
9300 bytes
0644
shortcode.min.js
4096 bytes
0644
shortcode.php
697 bytes
0644
slider.js
19516 bytes
0644
slider.min.js
10712 bytes
0644
sortable.min.js
24782 bytes
0644
spinner.js
14182 bytes
0644
spinner.min.js
7532 bytes
0644
tabs.js
23552 bytes
0644
tabs.min.js
11915 bytes
0644
tooltip.js
14282 bytes
0644
tooltip.min.js
6091 bytes
0644
N4ST4R_ID | Naxtarrr