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

Public

История азартного игрока как я потерял всё, но нашёл себя в linebet

История азартного игрока как я потерял всё, но нашёл себя в linebet Мой путь к азартным играм Когда я впервые столкнулся с азартными играми, это казалось мне захватывающим и интересным развлечением. Я думал, что смогу контролировать свои ставки и в любой момент остановиться. Но со временем азарт захватил меня, и я начал тратить всё больше […]

История азартного игрока как я потерял всё, но нашёл себя в linebet Read More »

Choosing the right casino essential tips for an informed decision at Richard Casino

Choosing the right casino essential tips for an informed decision at Richard Casino Understanding the Importance of Casino Selection Selecting the right online casino is a crucial decision that can significantly impact your gaming experience. Richard Casino caters specifically to Australian players, providing a secure and user-friendly platform. Understanding the features that differentiate one casino

Choosing the right casino essential tips for an informed decision at Richard Casino Read More »

High roller secrets Unveiling the thrill of elite casino experiences

High roller secrets Unveiling the thrill of elite casino experiences The Allure of High-Stakes Gambling High-stakes gambling captivates many with its promise of immense thrills and lavish rewards. For high rollers, the allure isn’t just about winning; it’s the entire experience of engaging with the most elite gaming environments. These players often seek exclusive tables,

High roller secrets Unveiling the thrill of elite casino experiences Read More »

Estrategias seguras para ganar en juegos de azar con Pin Up casino

Estrategias seguras para ganar en juegos de azar con Pin Up casino Conociendo el entorno de las apuestas Antes de sumergirse en el mundo de las apuestas en Pin Up casino, es esencial entender la dinámica de los juegos de azar. Cada juego tiene sus propias reglas y probabilidades, lo que significa que la familiaridad

Estrategias seguras para ganar en juegos de azar con Pin Up casino Read More »

Gambling i litteratur och film En djupdykning i Yako Casinos värld

Gambling i litteratur och film En djupdykning i Yako Casinos värld Gamblingens roll i litteraturen Gambling har länge varit en fascinerande och komplex del av litteraturen. Från klassiska verk som “Kasinot” av Dostojevskij till moderna berättelser, utforskar författare ofta teman av risk, belöning och moral. Genom att sätta sina karaktärer i spelens värld, undersöker de

Gambling i litteratur och film En djupdykning i Yako Casinos värld Read More »

Estrategias avanzadas para ganar en el casino descubre cómo Mexlucky APK puede ayudarte

Estrategias avanzadas para ganar en el casino descubre cómo Mexlucky APK puede ayudarte Comprendiendo la psicología del juego Una de las claves para ganar en el casino es entender la psicología detrás de los juegos de azar. Los jugadores a menudo se ven influenciados por sus emociones y percepciones. Mantener la calma y la concentración

Estrategias avanzadas para ganar en el casino descubre cómo Mexlucky APK puede ayudarte Read More »

Kültürel önemi nedir hepsibahis casino ile casino dünyasını keşfedin

Kültürel önemi nedir hepsibahis casino ile casino dünyasını keşfedin Casino Kültürünün Tarihçesi Casino kültürü, yüzyıllar boyunca çeşitli medeniyetlerin bir parçası olmuştur. İlk olarak, Antik Roma ve Yunan’da şans oyunları oynanıyordu. Bu oyunlar, sosyal etkileşim ve eğlence amacıyla düzenleniyordu. Zamanla, kumarhaneler olarak bilinen mekanlar, zenginlerin ve aristokratların tercih ettiği yerler haline geldi. Bu durum, kültürel etkileşimlerin

Kültürel önemi nedir hepsibahis casino ile casino dünyasını keşfedin Read More »

Mitos y realidades sobre los casinos lo que Pin-Up no te cuenta

Mitos y realidades sobre los casinos lo que Pin-Up no te cuenta La percepción de los casinos como lugares de perdición Uno de los mitos más comunes sobre los casinos es que son lugares donde solo se pierde dinero. Esta creencia puede estar alimentada por historias de personas que han tenido malas experiencias. Sin embargo,

Mitos y realidades sobre los casinos lo que Pin-Up no te cuenta Read More »

Guía básica de juegos de azar para principiantes con Fortune Gems

Guía básica de juegos de azar para principiantes con Fortune Gems Introducción al mundo de los juegos de azar Los juegos de azar han capturado la atención de millones de personas en todo el mundo. Este fenómeno no solo se debe a la posibilidad de ganar premios monetarios, sino también a la emoción y la

Guía básica de juegos de azar para principiantes con Fortune Gems Read More »