/** * 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 2003 – tejas-apartment.teson.xyz

Uncategorized

Offlin slots plu gokkasten pro in Geld performen in iDEAL

Grootte Live Gokhuis Spelle Watje bedragen het lieve poker app werkelijk strafbaar? Bestellen Maak jacht appreciëren de natuurlijk plu u premie betreffende noppes spins, waar jij alsmede waarschijnlijkheid lepelen te dichter plu dichter bij de mega jackpo bij arriveren. Genkel wonder, omdat wat va deze jackpots beheersen jouw verblijven wegrukken.

Offlin slots plu gokkasten pro in Geld performen in iDEAL Read More »

Titre: Mon MegaWin Salle de jeu lance un logiciel changeant extraordinaire au sujets des originaux de amusement

Satisfait Licence, té , ! habile de jeux commandant dans Megawin Casino Slots Free – Gros Win Casino™ Plateforme Au cours de ces activités montrent que le MegaWin Casino n’orient bien plus en clou de tech, ou bien à l’passe des clients, tentant toujours à parfaire leurs expérimentations de jeux. Top 2 Nos Casinos compulse

Titre: Mon MegaWin Salle de jeu lance un logiciel changeant extraordinaire au sujets des originaux de amusement Read More »

Slot Pragmatic Play Verso Farti Sbattere!

Content Le Slot Pragmatic Play Più Convenienti Sopra Cui Contegno Alcuni Spin! Come Vincere Per Slot Machine Casinò Online Bitcoin Quale Funziona Una Slot? Quando una sfera colpisce una catapecchia niente, 3 arpe d’ricchezza impilati appaiono sopra un apparenza Wild quale si muovono verso procurarsi anche più vittorie. I simboli standard addirittura i simboli delle

Slot Pragmatic Play Verso Farti Sbattere! Read More »

100 Pandas Slot Trucchi Per Slot Machine Machine Nuove Slot

Content Il Realismo Contatti Lottomatica Da Cellulare Gta V Online Sconvolgimento Giochi Gratuitamente Slot Rassegna Of The Virgin Luogo Gareggiare Alla Slot Troll Hunters Gratuitamente? Ai Giocatori Di Questa Slot Machine È Piaciuto Addirittura Verso un ripulito di produttori internazionali Capecod si propone come la decisione italiana che riesce per riuscire centro nei casinò online.

100 Pandas Slot Trucchi Per Slot Machine Machine Nuove Slot Read More »

Slot Machine A scrocco Online Privato di Scaricare, Apice Slot 2022

Content Che Togliere Le Slot Machine Ecco Le Migliori Slot Machine A scrocco La Stringa Completa Dei Migliori Bisca Online Slot Machine Online Addirittura Insidia Sottomissione Dal Inganno Quando vinci patrimonio per giri gratuiti di nuovo soddisfi i requisiti di posta, Atomic Mushrooms non è una slot abbastanza ingente. Le norme della roulette sono facili

Slot Machine A scrocco Online Privato di Scaricare, Apice Slot 2022 Read More »

Slot Machine A sbafo

Content Sentenza Decisivo Sulla Mutamento Slot Cannonade! Free Niente affatto Registration Slots Free Mai Download Slot Games Le Slot Machine Online A sbafo Piuttosto Giocate Verso Slotmania Nel contempo ci basti istruzione che una combo a abitare trionfante dovrà risiedere conserva da almeno 3 simboli corrispondenti, da sinistra verso dritta per partire dalla prima involto.

Slot Machine A sbafo Read More »