/** * 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; } } Topp casinospel du inte vill missa – tejas-apartment.teson.xyz

Topp casinospel du inte vill missa

Topp casinospel du inte vill missa

Populära spelautomater

Spelautomater är utan tvekan några av de mest älskade casinospelen. Deras färgglada teman och spännande funktioner lockar både nya och erfarna spelare. Många spelare dras till dessa spel för möjligheten att vinna stora jackpottar och njuta av underhållande berättelser, speciellt när de utforskar casino utan svensk licens där det finns unika erbjudanden att ta del av.

Flera kända spelutvecklare som NetEnt och Microgaming skapar ständigt nya titlar som blir snabba favoriter. Dessa spelautomater kan variera i tema, från klassiska fruktsymboler till film- och TV-serier, vilket gör att det alltid finns något nytt att upptäcka.

Live dealer-spel

Live dealer-spel har revolutionerat online-casinon genom att erbjuda en autentisk spelupplevelse direkt från komforten av ditt hem. Spelare kan interagera med riktiga dealers i realtid, vilket skapar en känsla av att vara på ett riktigt casino. Spel som blackjack, roulette och baccarat finns tillgängliga med live dealers och ger spelarna en mer social upplevelse.

Dessa spel har blivit populära bland dem som värderar realismen och interaktionen, och de erbjuder en perfekt balans mellan det bästa av både online- och landbaserade casinon. Med högkvalitativa videoströmmar och möjlighet att chatta med dealers, blir varje spelstund en unik upplevelse.

Strategiska kortspel

Kortspel som poker och blackjack erbjuder en blandning av tur och strategi, vilket gör dem till en stor favorit bland många spelare. I poker är det inte bara korten som avgör utgången, utan även spelarnas taktik och psykologiska spel. Det finns många varianter av poker, vilket ger spelarna möjlighet att välja den som passar dem bäst.

Blackjack, å sin sida, är ett annat strategiskt kortspel där målet är att slå dealern med en hand som är så nära 21 som möjligt. Båda dessa spel kräver en viss nivå av skicklighet och förmåga att läsa motspelare, vilket gör dem både utmanande och underhållande.

Bordsspel för alla smaker

Bordsspel har en lång historia inom spelvärlden och fortsätter att vara populära bland casinospelare. Klassiska spel som roulette och craps erbjuder olika insatsalternativ och spänning. Roulette är känt för sin snurrande hjul och de många sätt som spelare kan placera sina insatser på, vilket gör varje omgång full av förväntan.

Craps, å sin sida, är ett energiskt tärningsspel där spelarna satsar på resultatet av tärningskast. Den sociala atmosfären runt bordet gör craps till en favorit bland dem som söker en mer interaktiv spelupplevelse.

Om vår webbplats

Vår webbplats är dedikerad till att ge spelare de bästa resurserna och informationen om casinospel. Vi erbjuder omfattande guider, recensioner och tips för att hjälpa spelare att hitta rätt plattform för sina behov. Oavsett om du är nybörjare eller erfaren spelare, har vi något för dig.

Vi strävar efter att skapa en trygg och informativ miljö där spelare kan lära sig mer om olika casinospel och välja de alternativ som passar dem bäst. Genom att hålla oss uppdaterade med de senaste trenderna och spelen, ser vi till att du alltid är informerad om det som är hetast på marknaden.

Leave a Comment

Your email address will not be published. Required fields are marked *