/** * 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; } } doclab - https://misbojongmekar.sch.id Fri, 10 Apr 2026 03:04:49 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.3 https://misbojongmekar.sch.id/wp-content/uploads/2024/11/favicon.png doclab - https://misbojongmekar.sch.id 32 32 Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer https://misbojongmekar.sch.id/bedste-spil-uden-om-rufus-oplev-fantastiske/ https://misbojongmekar.sch.id/bedste-spil-uden-om-rufus-oplev-fantastiske/#respond Fri, 10 Apr 2026 02:54:37 +0000 https://misbojongmekar.sch.id/?p=11419 Bedste Spil Uden Om Rufus Når vi taler om spil, er det vigtigt at finde de rigtige alternativer, især hvis man ønsker at udforske bedste spil uden om rofus. Der er mange fantastiske spil derude, der kan give den samme spænding og underholdning, uden at man nødvendigvis behøver at spille Rufus. Uanset om du leder […]

The post Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer first appeared on .

]]>
Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer

Bedste Spil Uden Om Rufus

Når vi taler om spil, er det vigtigt at finde de rigtige alternativer, især hvis man ønsker at udforske bedste spil uden om rofus. Der er mange fantastiske spil derude, der kan give den samme spænding og underholdning, uden at man nødvendigvis behøver at spille Rufus. Uanset om du leder efter action, eventyr, eller strategispil, så er der noget for enhver smag. I denne artikel vil vi undersøge nogle af de bedste spil, du kan dykke ned i.

1. Hollow Knight

Hollow Knight er et fantastisk metroidvania-spil, der byder på en smuk håndtegnet verden, udfordrende gameplay, og en dyb historie. Spillerne tager på en rejse gennem Hallownest, et stort underjordisk rige fyldt med mystik og farer. Med dygtighed og udforskning kan du opgradere din karakter og finde nye evner ved at besejre fjender og chefer. Spillets atmosfære og kunststil gør det til en uforglemmelig oplevelse.

2. Celeste

Celeste er et platformspil, der fokuserer på udfordring og fortælling. Spillet handler om Madeline, der forsøger at bestige Celeste-bjerget. Gennem hendes rejse vil spillerne opleve intense platformsekvenser samt en hjertevarmende historie om selvovervindelse og mod. Celeste er let at lære, men svært at mestre, hvilket gør det til en perfekt udfordring for dem, der elsker at presse deres færdigheder.

3. Stardew Valley

For dem der søger en mere afslappet oplevelse, tilbyder Stardew Valley en landbrugssimulator, hvor du kan bygge dit drømmefarmen. Spillerne kan plante afgrøder, opdrætte dyr, og interagere med byens indbyggere. Med sin beroligende musik og charmerende grafik, er Stardew Valley et perfekt spil til dem, der ønsker at slappe af og fordybe sig i en anden verden.

Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer

4. Hades

Hades er et roguelike dungeon crawler, hvor du spiller som Zagreus, søn af Hades, der forsøger at flygte fra underverdenen. Spillet kombinerer hurtig action med en stærk fortælling, hvor du møder forskellige græske guder og monstre. Hver gennemspilning føles unik på grund af de varierende evner og opgraderinger, der er tilgængelige. Hades’ kunststil og musik er også værd at fremhæve og bidrager til den samlede oplevelse.

5. The Witcher 3: Wild Hunt

Som et af de mest anerkendte rollespil i de seneste år, har The Witcher 3: Wild Hunt en stor åben verden fuld af dybe karakterer og interessante quests. Spilleren tager rollen som Geralt af Rivia, en monsterjæger, der navigerer gennem en historie fyldt med politik, kærlighed og forræderi. Spillet tilbyder et fantastisk gameplay med mange muligheder for, hvordan du kan forme din fortælling.

6. Dark Souls III

For dem, der ønsker en udfordrende oplevelse, er Dark Souls III en af de mest hardcore spil på markedet. Med sin mørke og dystre atmosfære kræver spillet præcision og taktisk tænkning fra spilleren. Kampene mod chefer er legendariske, og historien er kompleks og dyb. Dark Souls III er perfekt for dem, der søger en udfordring og ønsker at føle sig belønnet for deres indsats.

7. Ori and the Will of the Wisps

Dette smukke platformspil tilbyder en følelsesmæssig og visuelt betagende rejse. Ori and the Will of the Wisps bygger videre på sin forgænger med en rørende historie og fantastiske gameplay-mekanikker. Spillet byder på udfordrende platformelementer og veludviklede karakterer, der gør det til en fornøjelse at spille. Det er en oplevelse, der får spillerne til at føle en dyb forbindelse til fortællingen og karaktererne.

Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer

8. Among Us

Among Us blev en kæmpe succes under pandemien og tilbyder en sjov multiplayer oplevelse. Spillerne arbejder sammen for at udføre opgaver ombord på et rumskib. Men en eller flere spillere er impostere, der forsøger at sabotere gruppen. Spillet kræver både strategi og observationsevner, hvilket gør det til en underholdende oplevelse med venner. Det sociale aspekt af spillet tilføjer en ekstra dimension til konkurrencen.

9. League of Legends

Hvis du er på udkig efter et konkurrerende spil, er League of Legends et af de mest populære MOBA-spil i verden. Spillere danner hold og konkurrerer imod hinanden i en strategisk kamp, hvor samarbejde og planlægning er nøglen til sejr. Spillet har et væld af karakterer at vælge imellem og et konstant opdateret spilunivers, som holder spillerne engagerede.

10. Minecraft

Minecraft er den ultimative sandkasse med uendelige muligheder. Spillere kan bygge, overleve, udforske eller skabe deres egne eventyr i en verden bygget af blokke. Det åbne gameplay giver spillere frihed til at udtrykke sig selv og tilføje deres egen kreativitet til verden. Minecraft er ikke kun sjovt for børn, men også for voksne, der ønsker at vende tilbage til deres kreative rødder.

Konklusion

Der er masser af fantastiske spil, der kan give den samme glæde og underholdning som Rufus, og det er værd at udforske dem. Uanset om du foretrækker at spille alene eller sammen med andre, vil du finde noget, der passer til dine præferencer i denne liste. Disse spil tilbyder et væld af forskellige oplevelser og udfordringer, så tag springet og prøv noget nyt idag!

The post Bedste Spil Uden Om Rufus Oplev Fantastiske Alternativer first appeared on .

]]>
https://misbojongmekar.sch.id/bedste-spil-uden-om-rufus-oplev-fantastiske/feed/ 0