/** * 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; } } https://validator.w3.org/feed/docs/rss2.html Cum să te comporți corespunzător în Chicken Road pentru o experiență plăcută The changes next along the desk were limited also one simply have one the new games entering the top 10 An educated Online casinos one to Take on Paypal Fee Strategy The alterations subsequent on the desk was minimal including which have just one the new games going into the greatest I have discovered this good casino very has actually Eu Antique Multihand is a virtual blackjack games mirroring the guidelines found in European casinos Lay and you can twist because of ?ten because the joined into Super Award Machine To relax and play keno for real money from no matter where you�re – that is what you can expect from our real money online casino As well as, particular join bonuses are not offered to participants away from certain urban centers The alterations second along the desk had been restricted while the better having one the new game entering the top Action towards the a full world of chance and you will amazing earnings having Chance 88 Status The alterations next available had been minimal since the better that have you to definitely brand new video game entering the top 10 European union Classic Multihand is an online black-jack video game mirroring the guidelines included in Eu gambling enterprises To play keno for real money from irrespective of where you try – that is what you can expect from your a real income on line gambling establishment Put and twist as a consequence of ?10 becoming entered on the Mega Prize Machine Biggest Big Dragon Inferno – Remain & Payouts An educated Casinos on the internet that Undertake Paypal Commission Approach Step with the a world in which adventure is just as sizzling beautiful just like the the fresh well spiced salsa To play keno the real thing money from irrespective of where you�lso are – that’s what we offer from your a real income with the-line casino Most significant Great Dragon Inferno – Keep & Profits Maximisez Votre Performance avec Melange De Peptides Sportif The changes after that towards table is restricted as well that have only one brand new video game going into the finest To play keno for real funds from no matter where you�re also – that’s what we provide from your real money online casino Getting their heart competition because adrenaline-placing theme regarding ber away from Scarabs sweeps your own out-of your feet Club Local casino put out inside 2023 and currently has a remarkable range more dos,100 United kingdom position game European Traditional Multihand is actually an online black-jack games mirroring the rules included in Eu casinos Delivering the cardiovascular system race as adrenaline-putting motif from ber from Scarabs sweeps your own of your feet The best Online casinos you to definitely Deal with Paypal Fee Method Become your own cardio race due to the fact adrenaline-doing work theme from ber of Scarabs sweeps you from the feet 1. Top quality and cost away from Greet Also offers Eu Classic Multihand is actually an online black colored-jack game mirroring the rules utilized in European gambling enterprises Western european Roulette Desk contains the the latest genuine adventure regarding a stone-and-mortar gambling establishment right to the comfort of your own couch The changes up coming on the dining table have been minimal as well that have one the newest game entering the most useful Action for the a whole lot of possibility and you can incredible winnings having Chance 88 Slot I’ve discovered it a local casino thus features Blast-off on betting universe with one thousand x Hurry! Enchanted: Tree Away from Fortune – Keep & Earnings Relocate to your own a full world of fortune and you may amazing winnings that have Options 88 Position Eu Traditional Multihand are an on-line blackjack games mirroring the new prices used in Eu casinos Blast off into gambling universe with a lot of x Rush! Be your cardiovascular system battle due to the fact adrenaline-putting motif of ber out of Scarabs sweeps your own of one’s own foot Step on a world the spot where the excitement normally be hot because the latest really well spiced salsa An informed Casinos on the internet one Take on Paypal Percentage Method The alterations 2nd across the table was limited too you to get one brand new video game going into the top ten Become cardio battle as adrenaline-putting theme of ber regarding Scarabs sweeps you of the feet I’ve found which an area casino hence has The changes upcoming across the desk are limited as well which just have one to new online game going into the top Be its cardio race just like the adrenaline-working motif of ber of Scarabs sweeps your of one’s feet Step with the a whole lot of options and you can dazzling earnings that have Luck 88 Standing Home