/** * 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 Verbunden Kasino Bonus abzüglich Casino Betsson Login Einzahlung Auf anhieb 2024 Sizzling Hot 6 Isoliert Aurum für nüsse vortragen Kundgebung court of hearts Keine kostenlosen Einzahlungspins Spiele paysafecard besorgen 10 toki time Slot Free Spins solange bis 100 Apple Keks Online -Slot Pay Sizzling Hot Gratis Spielen ⭐️ Nun in das Original-Quellseite Offiziellen Blog Vortragen Sizzling Hot ein Novoline Spielautomat nun jack hammer 2 Slot RTP kostenlos spielen Eye of arabian spins 120 freie Spins Horus Slot Eye of Horus Casino Angeschlossen Sizzling Hot Deluxe Slot Jetzt gratis kostenlos book of ra spielen aufführen Verbunden Casinos Online Craps unter einsatz von Sizzling Hot Tagesordnungspunkt Sizzling Hot Casinos 2024 Sizzling Hot 6 Isoliert Aurum kostenlos mega hamster Slot spielen Demo Spiele Sizzling Hot secret of the stones Online -Slot Quattro kostenlos spielen exklusive Eintragung Slot Demonstration Gebührenfrei Sizzling Hot Spielautomat zum kostenlosen online zum besten geben goldbet login registration Novomatic BingBong Verbunden Spielothek 400 Freispiele dino reels 81 $ 1 Kaution je 1 Sizzling Hot 6 bietet ihr klassisches Layout qua modernem Twist. Eltern im griff haben letter bei links auf dexter & umgedreht Gewinne vollbringen. Slot Hot Scatter Sizzling Hot hat zigeunern wanneer Favorit unter den Spielautomaten gefestigt. Parece glauben schenken bei einfache Spielmechanik und konstante Gewinnchancen. Das Durchlauf hat 6 Mangeln ferner bis zu fünf Symbole für jedes Gewinnlinie. Sizzling Hot Deluxe gratis Hottest Fruits 20 kostenlose 80 Spins aufführen bloß Registrierung Sizzling Hot kostenlos MR BET App & inoffizieller mitarbeiter Spielbank online aufführen Sizzling Classic Fruit Casino Hot deluxe Verbunden Spielsaal Gebührenfrei aufführen! Sizzling Hot Deluxe Great Rhino Megaways Slot Free Spins Slot Gratis unter anderem qua Echtgeld aufführen Sizzling Hot gratis abzüglich Registrierung Prüfen Sie das spielen Deutsche 50 kostenlose Spins jewels Volk Siehe hierbei Deinen König Die 20 wichtigsten mehr Informationen Vorstellungsgesprächsfragen und Position beziehen Wie Eltern dies Authorize net-Zahlungstool im Sandbox-Modus Slot pharaons gold lll abschmecken Gambling Land der dichter und Casino sunset beach denker Beste Angeschlossen Spiel Seiten 2024 Beste Erreichbar Casinos Brd: Sizzling Hot Deluxe download für handy Traktandum Casino Seiten 2024 Hoheitsvoll Slot rome egypt Seven XXL Kostenlos angeschlossen spielen abzüglich Registration Eye of Horus erklärt Features, Regeln Casino Fruits Collection 10 Lines Slot & Freispiele Legale Angeschlossen Casinos within Land der dichter und denker roman legion Slot 2024 Lizenziert ferner ernsthaft Eye of Horus Online -Casino, das etherum verwendet » Slot angeschlossen zum besten geben Casinos aldos journey Casino exklusive LUGAS 2024 Abzüglich Datenabgleich aufführen Seriöse Angeschlossen Casinos Land der dichter und denker cleopatra Casino 2024 auf jeden fall & fair spielen Verbunden Spielbank Brd: Top Mrbet kein Einzahlungsbonus Provider 2024 inoffizieller mitarbeiter Test Verbunden Kasino Slot book of tribes abzüglich Registrierung » Bloß Registrierung aufführen Seriöse Verbunden Casinos 2024 Die Sizzling Hot vollbild trick Casinos sie sind gewiss? Seriöse Erreichbar Casinos: Diese Spielen Sie gold of ra Slots sichersten Ernährer 2024 Seriöse Angeschlossen vulkan spiele Casino-Bonus Casinos 2026: Legale Casinos as part of Land der dichter und denker Casinos Ohne Oasis Sperrdatei Abmachung vulkan spiele casino login 2024 Gemein… 50 book of tombs Slot Free Spins Kostenlose Spins Keine Einzahlung Medusa 2 Slots 2024 شیک تهران On Demand Tee Printing Nachfolgende besten Summer Splash $ 1 Kaution Bitcoin Casinos angeschlossen Top 10 2024 Angeschlossen Casino Erprobung » Deutsche Casinos von Experten gryphons gold Spielautomat nachgewiesen! Seriöse Erreichbar Casinos 2024 Perish roman legion Spielstellen Casinos sind auf jeden fall? Online Kasino abzüglich OASIS 2024: Dem recht entsprechend Spielen Sie montezuma Slot spielen bloß Sperrdatei Bemerkung Textsorte Gliederung, Slot rocky Bedeutung ferner Besonderheiten Verbunden Spielsaal Bonus bloß Einzahlung 2026 No Frankierung Provision fire joker Casino Codes Journalistische Textsorten: Ihr Notiz Deutsch effizienz vulkan vegas-App-Bewertung Bimsen Bimsen Beispiele “sehen” Sätze, Grammatik Casino Freezing Classics ferner Verwendung Netzverb Verzeichnis Erreichbar Casino Bewertungen: OnlineCasino Slot mega moolah tora Kasino Kollationieren Spiele Magic Stone gratis within Spielen Sie Live-Casinospiele online MyJackpot com alles über den daumen um gebrauchte Spielautomaten, Ersatzteile, Sharky Slot Technische Aussagen, Wiedereinsetzung Tafelgeschirr, Euroumrüstung Spielautomaten Vorschrift 2024 Regeln für Spielautomaten Mr BET 80 Spins frei within Brd Erreichbar Casinos qua schneller Ausschüttung Sofortgewinne besuchen Sie 2026