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

Uncategorized

Mondial Casino NZ Success Stories: Your Winning Path

Embarking on a journey through the online casino world can be both exciting and rewarding, especially when you find a platform that consistently delivers thrilling experiences. Many players seek inspiration from those who have achieved remarkable wins, and discovering how they navigated the games is often the first step. Exploring the diverse offerings at Mondial […]

Mondial Casino NZ Success Stories: Your Winning Path Read More »

Yabby Casino NZ: Your Guide to Online Gaming Insights

Navigating the world of online casinos in New Zealand requires informed choices, and understanding the landscape can significantly enhance your gaming experience. For those seeking a comprehensive platform, exploring options like yabbycasinos-online.com provides a solid starting point to discover a wide array of games and features. By focusing on key industry trends and practical strategies,

Yabby Casino NZ: Your Guide to Online Gaming Insights Read More »

Hellspin Casino: Your Essential Guide to What You Need to Know

Embarking on your online gaming journey requires understanding the platforms available, and many players are curious about the features offered by various sites. If you’re looking for a dynamic and engaging online casino experience, exploring options like Hellspin Casino can be a rewarding step. This guide aims to provide you with practical insights, covering essential

Hellspin Casino: Your Essential Guide to What You Need to Know Read More »

Spin City Casino NZ: Your Step-by-Step Guide

Embarking on your online gaming journey in New Zealand can be an exciting prospect, offering a wealth of entertainment and potential rewards right from your home. For those seeking a premier destination, many players turn to reputable platforms, and exploring options like those found at https://spincitycasinos-online.com/ provides a comprehensive overview. This guide aims to demystify

Spin City Casino NZ: Your Step-by-Step Guide Read More »

Casumo Casino NZ: An In-Depth Look for Kiwis

Finding the perfect online casino can feel like a quest, especially when you’re looking for a platform that combines fun, reliability, and a touch of adventure. For those seeking a comprehensive overview and the latest insights into reputable online gaming sites, exploring resources like casumocasinos-online.com can be incredibly helpful. This article dives deep into what

Casumo Casino NZ: An In-Depth Look for Kiwis Read More »

Playgrand Casino NZ FAQs: Your Questions Answered

Navigating the world of online casinos can sometimes bring up numerous questions, and finding clear, reliable answers is crucial for a smooth experience. For Kiwis looking into a popular platform, many inquiries revolve around the specifics of gameplay, security, and available offers. Understanding these details empowers players, and for those interested in exploring what’s on

Playgrand Casino NZ FAQs: Your Questions Answered Read More »

Leon Casino NZ: Your Practical Guide to Playing Online

Embarking on your online gaming journey in New Zealand can be an exciting prospect, and finding a reliable platform is key to a positive experience. Many players look for trusted sites, such as the one found at https://leoncasinos-online.com/, which offers a wide range of entertainment options. Making informed choices ensures you get the most out

Leon Casino NZ: Your Practical Guide to Playing Online Read More »

One Casino NZ: Pros & Cons for Kiwi Players

Navigating the online casino landscape in New Zealand can be exciting, offering a wide array of entertainment options right at your fingertips. For many players looking for a comprehensive gaming experience, understanding the benefits and drawbacks of specific platforms is crucial before diving in. Whether you’re a seasoned gambler or new to the scene, evaluating

One Casino NZ: Pros & Cons for Kiwi Players Read More »

Skycity Casino NZ: Key Factors for a Top Gaming Experience

Planning a visit to New Zealand’s premier entertainment destination or exploring its online offerings? Whether you’re looking for the glitz and glamour of a physical casino floor or the convenience of digital play, understanding what makes a venue stand out is crucial. For many, the heart of the matter lies with reputable platforms, and exploring

Skycity Casino NZ: Key Factors for a Top Gaming Experience Read More »