/** * 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 */ #[AllowDynamicProperties] 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() * @global WP_Embed $wp_embed WordPress Embed object. * @global WP_Scripts $wp_scripts * * @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 ) { global $wp_embed, $wp_scripts; $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. /* @var WP_Embed $wp_embed */ $html = $wp_embed->get_embed_handler_html( $args, $url ); if ( $html ) { // 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; } } Uncategorized – Page 1141 – tejas-apartment.teson.xyz

Uncategorized

Golden Genie Online Casino UK A Comprehensive Review

If you’re looking for an exceptional online gaming experience, look no further than Golden Genie Online Casino UK Golden Genie review. This UK-based online casino has rapidly gained recognition for its extensive game library, user-friendly interface, and rewarding bonuses. In this article, we will delve into the various aspects of Golden Genie Online Casino, examining […]

Golden Genie Online Casino UK A Comprehensive Review Read More »

Slots Angels Slot Play Online for real Money or Demo

Blogs Icons and Incentives Use Mobile device Totally free Position Game against A real income Harbors Most other Common Slot Versions Really worth Rotating Streaming reels, 100 percent free spins, glowing wilds, and you will ample multipliers are typical has. Instead of normal slots, such game give you to your an excellent celestial function full

Slots Angels Slot Play Online for real Money or Demo Read More »

Thunderstruck II Position Review 96 65% RTP Microgaming 2026

Articles Mobile Slots Play Thunderstruck 2 position for real money The new Nuts Wonders Feature Opting for A slot Video game Thunderstruck 2 Position Comment – Online casino Sites, Incentives & RTP In addition to right up-to-time study, we offer advertising to the world’s top and authorized internet casino labels. The brand new slot video

Thunderstruck II Position Review 96 65% RTP Microgaming 2026 Read More »

Publication Out of Ra Slot machine Online for free Enjoy Novomatic game

Content Book away from Ra Luxury Trial Position Ideas on how to Enjoy Guide of Ra: Very first Legislation Playing Administrators and you will Licenses Attaining the jackpot is not simple and easy victories might be couple and you may far between, nevertheless when big victories started, they can be big. This can be a

Publication Out of Ra Slot machine Online for free Enjoy Novomatic game Read More »

Tren A 100 Bewertung – Ein umfassender Überblick

Die Bewertung von Tren A 100 ist in der Fitness- und Bodybuilding-Community von besonderem Interesse. Tren A 100, ein starkes anaboles Steroid, wird häufig von Athleten und Bodybuildern verwendet, um Muskelmasse aufzubauen und die Leistungsfähigkeit zu steigern. Im Folgenden werfen wir einen detaillierten Blick auf die verschiedenen Aspekte von Tren A 100. https://strongflow.uk/tren-a-100-bewertung-ein-umfassender-uberblick/ Inhaltsverzeichnis Was

Tren A 100 Bewertung – Ein umfassender Überblick Read More »

Free Harbors On the Two Tribes slot machine real money web Gamble 10000+ Ports 100percent free

All of our Two Tribes slot machine real money calculator incisions from the terms and conditions and you can teaches you the brand new full playthrough inside the mere seconds—so that you know if they’s a jackpot offer or perhaps pouch alter. Sure, even when modern jackpots can’t be brought about inside the a free

Free Harbors On the Two Tribes slot machine real money web Gamble 10000+ Ports 100percent free Read More »

Benefit Live Roulette: An Overview to Online Casino Bonuses

On-line casino sites offer a wide variety of incentives to draw in and preserve gamers. One popular kind of bonus offer is the reward roulette, which allows gamers to make added incentives while playing their preferred roulette video games. In this post, we will explore the ins and outs of incentive live roulette and offer

Benefit Live Roulette: An Overview to Online Casino Bonuses Read More »