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

korea1xbet

Download 1xBet Korea App Your Guide to Mobile Betting

Download 1xBet Korea App: Your Gateway to Mobile Betting In today’s fast-paced world, convenience is key, especially when it comes to placing bets on your favorite sports or games. The 1xBet Korea Download APP korea 1xbet app offers a fantastic solution for sports enthusiasts and gaming aficionados in Korea. With just a few taps, you […]

Download 1xBet Korea App Your Guide to Mobile Betting Read More »

Download the 1xBet App for Seamless Betting in Korea

In today’s fast-paced world, having access to your favorite betting platforms at your fingertips is essential. The 1xBet Korea Download APP korea 1xbet app brings the excitement of betting directly to your smartphone or tablet, making it one of the most sought-after applications in the Korean betting market. This article will guide you through the

Download the 1xBet App for Seamless Betting in Korea Read More »

Приложение 1xbet Лучшая букмекерская платформа в Кыргызстане

Если вы являетесь фанатом спортивных ставок и живете в Кыргызстане, вам наверняка знакома компания 1xbet. С помощью Приложение 1xbet Кыргызстан 1xbet кыргызстан скачать вы сможете легко и быстро установить мобильное приложение, которое станет вашим верным помощником в мире беттинга. Что такое 1xbet? 1xbet – это одна из самых популярных букмекерских контор в мире, предлагающая широкий

Приложение 1xbet Лучшая букмекерская платформа в Кыргызстане Read More »

1xBet 코리아 앱 다운로드 – 최신 정보를 만나보세요!

베팅을 사랑하는 모든 한국 사용자 여러분! 1xBet 코리아 앱 다운로드 1xbet어플을 통해 1xBet의 다양한 기능을 손쉽게 경험할 수 있습니다. 오늘은 이 앱의 다운로드 방법과 함께 사용자들이 자주 묻는 질문들에 대해 알아보겠습니다. 1xBet 코리아 앱 개요 1xBet은 전 세계적으로 이용되는 베팅 플랫폼이며, 사용자 편의를 위해 모바일 앱을 제공합니다. 이 앱을 통해 언제 어디서나 편리하게 베팅을 할

1xBet 코리아 앱 다운로드 – 최신 정보를 만나보세요! Read More »

1xBet Korea Your Ultimate Guide to Online Betting -1640791901

Welcome to the world of online betting in Korea! If you’re looking to dive into the exciting realm of sports wagering and casino games, 1xBet Корея 1xbet корея is your go-to platform. With its comprehensive offerings, user-friendly interface, and an array of bonuses, 1xBet Korea stands out as one of the leading online betting sites

1xBet Korea Your Ultimate Guide to Online Betting -1640791901 Read More »

1xBet Korea Download APP Seamless Betting Experience in Your Hand

Betting has evolved significantly in the digital era, with mobile applications making the process more accessible than ever. For avid gamblers in Korea, the 1xBet Korea Download APP korea 1xbet app stands out as one of the most user-friendly and feature-rich platforms available. This article delves into the benefits of downloading the 1xBet Korea app,

1xBet Korea Download APP Seamless Betting Experience in Your Hand Read More »

1xBet Korea Desktop Your Ultimate Betting Experience -1585584464

If you are looking for a reliable and user-friendly betting platform, look no further than 1xBet Korea Desktop. This platform not only offers a wide range of sports and casino games but also ensures a smooth experience for its users. Whether you are a seasoned bettor or a newcomer, the interface is designed to cater

1xBet Korea Desktop Your Ultimate Betting Experience -1585584464 Read More »

1xBet Korea – Download the Best Betting App -1775410761

1xBet Korea: Download the Best Betting App If you are looking for a seamless online betting experience in Korea, the 1xBet Korea Download APP korean1xbet app is your best choice. This comprehensive guide will walk you through how to download the app, its features, and why it has become a favorite among bettors in Korea.

1xBet Korea – Download the Best Betting App -1775410761 Read More »