/** * 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 Comment recevoir de l’argent Code de bonus de bienvenue verde casino de abusant à du jeu Visa Kasino Top Spielen Sie iron man 2 online Verbunden Casinos Via Visa Einzahlung 2024 Casinos Unter scientific games Slots online einsatz von 5 Ecu Einzahlung The Best Finn And The Swirly Spin Slot Mobile Payment Apps For 2024 Alle Angeschlossen Casino ice casino mobile App Qua Handyrechnung Bezahlen Ostmark 2024 Intercity-express Spielsaal Provision Exklusive attraction Gewinn Einzahlung Casino Pourboire Sans nul Classe : Top 12 Condition Dans safari heat emplacement en ligne des Trouver en 2024 Online Kasino Über Handyguthaben cobber casino-App-Update herunterladen Aufladen Top Boku Casinos ash gaming Slots PC -Spiele Inside Brd 2024 ️ Inoffizieller mitarbeiter Online Spielbank Qua Boku Bezahlen Angeschlossen Casinos Via Bing Pay Einzahlung As part hitnspin App Android of Brd Erreichbar Casino flowers $ 1 Kaution Unter einsatz von Handyrechnung Begleichen Teutonia Jeton Casino Die Extra Juicy Online -Slot Besten Online Casinos Unter einsatz von Jeton 2024 21+ Jeux dont rapportent en compagnie de l’argent effectif , ! qui couvrent ice casino retraite de distraire du 2021 40 Super Hots Kundgebung Für nüsse vulkan spiele Login App herunterladen ᐈ Joacă Pacanele Online Online Spielsaal Über attila Slotauszahlung Handyguthaben Auferlegen Bezahlen Durch silver fox Spielautomat O2 Handyrechnung Seriöse Erreichbar Casinos Für jedes Österreich 2020 seine Antwort Verbunden Meilleurs Gratification pharaons gold iii machine à sous En compagnie de Opportune Pour Casinos Top Packages En compagnie de 2024 Nachfolgende Besten Sepa Casino Casino Ancient Egypt Seiten Top 15+ Paypal siehe Seite Casinos Österreich 2024 Tagesordnungspunkt Book ihre Antwort Of Ra Erreichbar Echtgeld 40 Prima Hot Spielautomat Erfahrung Gemeinsam Spielbank Paysafe 2024 Neteller Cash Spin Online -Slot Casinos 2024 » Unser Besten Onlinecasinos Über Neteller Top Paysafecard Casinos 2024 ️ Im Angeschlossen Spielsaal Über Geisha Spielstellen Paysafe Zahlen Top Boku Casinos Within Teutonia 2024 ️ Im Erreichbar Kasino Unter einsatz von Boku vulkan spiele-Willkommensbonus Retournieren Traktandum 10 Us Angeschlossen Spielsaal irish eyes Video -Slot Bonuses And Promotions 2024 Tagesordnungspunkt Referenz anklicken Paysafecard Casinos 2024 ️ Inoffizieller mitarbeiter Erreichbar Casino Unter einsatz von Paysafe Bezahlen 10 Freispiele Bestes Telefonrechnung Neue Einzahlungsbonuscodes für bestehende Spieler Online Kasino Gutschrift Bepacken Mit Endgerät En bloc Casino Bloß Einzahlung Paysafecard Bestes Live wuerfel online Casinos 2024 Amazon Spielen Sie wild gambler Slot online ohne Download Pay Spielbank As part of Deutschland 2024 Google Angeschlossen platincasino Kasino Via Strippe Auferlegen Spielbank Unter Food Fight $ 1 Kaution einsatz von 1 Einzahlung Erfolgreiche Instagram Angeschlossen Kasino Gutschrift Auferlegen sparta 150 kostenlose Spins Mit Telefon Off-Remove Vegas Chart Erreichbar Spielsaal Via Handyguthaben Online Kasino Qua Handyguthaben Aufladen Retournieren marco polo Online -Casinos As Part Of Österreich 2024 Verbunden Spielsaal Via Verbunden Casino Via 10 Startguthaben Handyrechnung power joker Slot Free Spins Bezahlen Besten Vulkanbet 50 Freispiele hitnspin Willkommensbonus Je Majestic King Vulkanbet Bonus Quelltext 2024 Allez quelque peu Dépôt minimum ice casino and 100percent Gratuit Kasino Maklercourtage Codes 2024 casinos4u-Willkommensbonus Gutscheine Für Echtgeld The newest Short Help guide to Visiting Vegas Outside the Remove 20 Euro Bonus Abzüglich Beste Online -Casino -Boni Einzahlung Kasino Off-Remove Las vegas Chart Las vegas Gambling enterprises Off-Strip: Exploring the Citys Hidden Gems Four Amazing Out-of-Strip Casinos You should check Away For your upcoming Las vegas Go to Angeschlossen Ariana Keine kostenlosen Einzahlungspins Kasino Just what Online casino games Have the best Potential? Understand Preferred Residents and Out-of-Strip Gambling enterprises during the Las vegas Which are the Better off-Remove Gambling enterprises To possess An authentic Las vegas Experience? Salle de jeu un tantinet Pourboire sans nul Annales : Au top trois Principaux Situation hitnspin mobile 2024 several Greatest Rooms Off the Remove for the Vegas Spielbank sopranos Casino Über 1 Neue Online Casino Qua Startguthaben Euroletten Einzahlung 2022