/**
* 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;
}
}
The post En Guide til Udenlandske Spillesider Fordele, Ulemper og Hvordan man Vælger first appeared on .
]]>
Spilleverdenen har ændret sig markant over de seneste årtier, især med fremkomsten af online gambling. Udenlandske spillesider har vundet stor popularitet blandt spillere, der søger større muligheder og bedre bonusser. I denne artikel vil vi dykke ned i de mange facetter af udenlandske spillesider, og hvad man skal være opmærksom på, når man vælger en platform. Det er også vigtigt at bemærke, at mange spillere, der ønsker at spille online, skal være opmærksomme på at finde et udenlandske spillesider casino uden rofus liste for ikke at komme på den danske spillemyndigheds liste. Øget forståelse er nøglen til at navigere i denne spændende branche.
Der er mange grunde til, at spillere vælger udenlandske spillesider over danske alternativer. Her er nogle af de mest fremtrædende fordele:
På trods af de nævnte fordele er der også ulemper ved at spille på udenlandske spillesider. Det er vigtigt at være opmærksom på disse, før man træffer en beslutning:
Når man vælger en udenlandsk spilleside, er det vigtigt at overveje en række faktorer for at sikre, at man får den bedste oplevelse. Her er nogle tips til at vælge den rette platform:
Udenlandske spillesider kan tilbyde en fantastisk gamblingoplevelse, men det er vigtigt at gøre sin research, før man vælger en platform. Ved at veje fordele og ulemper og tage hensyn til dine egne præferencer kan du finde den rigtige spilleside, der tilbyder både spænding og sikkerhed. Husk altid at spille ansvarligt og at sætte grænser for dit gambling for at sikre, at det forbliver en sjov og underholdende aktivitet.
For mere information om udenlandske spillesider, ansvarligt spil, og aktuelle bonusmuligheder, kan du besøge relevante spilportaler og fora, hvor du kan finde den nyeste information og tips fra eksperter og andre spillere.
The post En Guide til Udenlandske Spillesider Fordele, Ulemper og Hvordan man Vælger first appeared on .
]]>The post Online Casino Uden Om ROFUS Spil Ansvarligt og Frit first appeared on .
]]>
Det danske spillemarked har gennemgået betydelige ændringer de seneste år. Med indførelsen af ROFUS (Register Over Frivilligt Udelukkede Spillere) har mange spillere følt sig begrænset. Heldigvis findes der online casinoer, der giver mulighed for at spille uden om ROFUS. Læs videre for at finde ud af, hvordan du kan nyde online gambling uden de restriktioner, som ROFUS medfører. Du kan også finde flere informationer online casino uden om ROFUS https://www.hoeve-skov.dk/.
ROFUS står for Register Over Frivilligt Udelukkede Spillere. Dette register er designet til at hjælpe spillere, der ønsker at begrænse deres spilaktivitet af forskellige årsager. Når en spiller tilmelder sig ROFUS, bliver de udelukket fra at spille på alle danske online casinoer. Selvom dette system har til formål at beskytte forbrugerne, føler mange spillere, at det kan være frustrerende og restriktivt.

At spille online casino uden om ROFUS kan åbne op for en verden af muligheder. Her er nogle af fordelene:
At finde online casinoer uden om ROFUS kræver lidt research, men det er umagen værd. Her er nogle tips til at finde de bedste muligheder:

Selvom det kan være fristende at spille uden om ROFUS, er det vigtigt at spille ansvarligt. Her er nogle tips til at sikre, at din spiloplevelse forbliver sjov:
Når du spiller online casino uden om ROFUS, har du adgang til et væld af spændende spil. Nogle af de mest populære spil inkluderer:
At spille online casino uden om ROFUS kan give spillere en ny frihed til at udforske deres yndlingsspil. Selvom det er vigtigt at være opmærksom på at spille ansvarligt, kan de mange fordele ved disse casinoer ikke ignoreres. Husk at have det sjovt, og spil ansvarligt!
The post Online Casino Uden Om ROFUS Spil Ansvarligt og Frit first appeared on .
]]>