/** * 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; } } Public – Page 9 – tejas-apartment.teson.xyz

Public

Jugar de manera responsable claves para disfrutar sin riesgos

Jugar de manera responsable claves para disfrutar sin riesgos La importancia del juego responsable El juego responsable es fundamental para disfrutar de una experiencia de entretenimiento sin riesgos. La clave es establecer límites claros desde el principio. Es vital que los jugadores se fijen un presupuesto y lo respeten, de esta manera se evita que […]

Jugar de manera responsable claves para disfrutar sin riesgos Read More »

Gambling trin for trin Sådan forbedrer du dine chancer for at vinde

Gambling trin for trin Sådan forbedrer du dine chancer for at vinde Forstå spillets grundprincipper For at forbedre dine chancer for at vinde, er det afgørende at have en grundlæggende forståelse af de spil, du vælger at spille. Hvert spil har sine egne regler og strategier, som kan påvirke dit resultat. Uanset om du spiller

Gambling trin for trin Sådan forbedrer du dine chancer for at vinde Read More »

Einsteigerfreundliche Tipps für das Spielen im Casino

Einsteigerfreundliche Tipps für das Spielen im Casino Die Grundlagen des Spielens im Casino Bevor Sie in die aufregende Welt der Casinos eintauchen, ist es wichtig, sich mit den grundlegenden Spielmechanismen vertraut zu machen. Jedes Spiel hat seine eigenen Regeln und Strategien, die es zu verstehen gilt. Zum Beispiel unterscheiden sich Tischspiele wie Blackjack oder Roulette

Einsteigerfreundliche Tipps für das Spielen im Casino Read More »

Discover the top games at Felixspin Casino: Play and prosper

Discover the top games at Felixspin Casino: Play and prosper Felixspin Casino is an exciting online gaming platform that offers a diverse array of games, particularly focusing on slots and live casino experiences. With the rise of cryptocurrency, Felixspin has integrated various digital currencies for seamless transactions. Players can expect a thrilling gaming environment paired

Discover the top games at Felixspin Casino: Play and prosper Read More »

Kasino Kompletní průvodce světem hazardních her

Kasino Kompletní průvodce světem hazardních her Úvod do světa hazardních her Svět hazardních her je fascinující a vzrušující doménou, která láká miliony hráčů po celém světě. V této oblasti můžete narazit na širokou škálu her, od klasických automatů po strategické stolní hry. Každý hráč si zde může najít to své, ať už jde o adrenalinové

Kasino Kompletní průvodce světem hazardních her Read More »

Famous Casino Tales and Their Lessons

Famous Casino Tales and Their Lessons أهمية الكازينوهات في الثقافة الشعبية تعتبر الكازينوهات جزءًا لا يتجزأ من الثقافة الشعبية في العديد من الدول، حيث تجذب الزوار من جميع الفئات العمرية. تتميز الكازينوهات بتوفير تجربة فريدة من نوعها تمزج بين الترفيه والمغامرة، مما يجعل العديد من الأشخاص يتجهون إلى VIP Casino 365 للاستمتاع باللعب. وبفضل الأفلام

Famous Casino Tales and Their Lessons Read More »

Jokabet review: Comprehensive insights into pros, cons, and casino options

Jokabet review: Comprehensive insights into pros, cons, and casino options Jokabet is an online entertainment platform that merges the excitement of casino gaming with the thrill of sports betting. With an expansive library of over 3,000 games and a commitment to user security, it has positioned itself as a go-to destination for both seasoned gamblers

Jokabet review: Comprehensive insights into pros, cons, and casino options Read More »

Casino dünyasına yeni başlayanlar üçün mükəmməl bələdçi

Casino dünyasına yeni başlayanlar üçün mükəmməl bələdçi Casino nədir? Casino, insanların müxtəlif oyunlar oynayaraq pul qazana biləcəyi bir əyləncə məkanıdır. Bu oyunlar arasında slots, poker, rulet və bir çox digər masa oyunları mövcuddur. Casino, həmçinin sosial bir mühitdir; burada insanlar bir araya gələrək əyləncəli vaxt keçirirlər. Yüksək riskli oyunlar ilə daha az riskli oyunlar arasında

Casino dünyasına yeni başlayanlar üçün mükəmməl bələdçi Read More »

Mastering advanced strategies for successful gambling adventures

Mastering advanced strategies for successful gambling adventures Understanding the Basics of Gambling Before diving into advanced strategies for gambling, it’s essential to understand the foundational aspects of the activity. Gambling involves wagering money or valuables on outcomes that are largely determined by chance. However, within this realm, various games provide opportunities for strategic thinking and

Mastering advanced strategies for successful gambling adventures Read More »

Explorando el mundo del juego una guía completa sobre apuestas responsable

Explorando el mundo del juego una guía completa sobre apuestas responsable La importancia de las apuestas responsables Las apuestas responsables son fundamentales para garantizar una experiencia de juego segura y placentera. Este concepto implica establecer límites en el tiempo y el dinero que se destina a las apuestas. La práctica de jugar de manera responsable

Explorando el mundo del juego una guía completa sobre apuestas responsable Read More »