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

Uncategorized

Wolfi töö positsioonivabade IGT sadamate sissemakseta ice casino kallal

Sisu Sissemakseta ice casino – Parem kolmas samm Hasartmänguettevõtted pärisraha mängides Hundi töö Trial Gamble'is Sa mängid praegu, 0 / 35288 Wolf töötab Toggle Lighting'u kallal Millised on mõned Wolf Work with Position Hosti boonuspakkumised? Wolf Focus on ülemaailmselt loodud positsioonimäng, mis on loodud taltsutamata hundi paketi abil. Proovi seda 100% tasuta ja saa aru, […]

Wolfi töö positsioonivabade IGT sadamate sissemakseta ice casino kallal Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Unlocking the secrets of casino strategy for beginners

Unlocking the secrets of casino strategy for beginners Understanding the Basics of Casino Games When delving into the world of casinos, it is essential for beginners to grasp the fundamental concepts of different games. Casino games can be broadly categorized into two types: games of chance, like slots and roulette, and games of skill, such

Unlocking the secrets of casino strategy for beginners Read More »

Лепрекон отива в Египет. Безплатна онлайн позиция за хазарт.

Megaways са склонни да имат най-високи RTP от много други пристанища, което ги прави привлекателни за хората. Можете да генерирате по-кратки победи, като координирате три знака в линия, или да задействате големи печалби благодарение на координиращите се икони около половин дузина барабани. Безплатните завъртания са най-често срещаната форма на бонус рунд, но могат да се

Лепрекон отива в Египет. Безплатна онлайн позиция за хазарт. Read More »

Най-добрите онлайн пристанища на Betsoft и най-добрите уеб-базирани казина на Betsoft

Блогове Врати от Олимп (Pragmatic Enjoy) – Избор на играча Онлайн слотове, които са готови за употреба Лотария Социалните казина ще имат нас професионалисти Изпробването на истински пристанища за пари може да е безпроблемно и когато някога ви е необходима помощ, тя може да бъде незабавна. И така, как да спрете напълно казината да манипулират

Най-добрите онлайн пристанища на Betsoft и най-добрите уеб-базирани казина на Betsoft Read More »

Verhoog je spelplezier en beleef onvergetelijke momenten met het complete aanbod van circus be, waar

Verhoog je spelplezier en beleef onvergetelijke momenten met het complete aanbod van circus be, waar entertainment en winst samenkomen. Het Spelaanbod van Circus Be: Een Wereld aan Vermaak Bonussen en Promoties: Extra Kansen om te Winnen Verantwoord Spelen: Een Veilige en Plezierige Ervaring Betaalmethoden en Veiligheid Klantenservice: Hulp Wanneer Je Het Nodig Hebt Verhoog je

Verhoog je spelplezier en beleef onvergetelijke momenten met het complete aanbod van circus be, waar Read More »