/**
* 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 Exploring the Features and Benefits of 1xBet first appeared on .
]]>
In today’s digital age, online betting has gained immense popularity, and one of the leading platforms in this arena is 1xBet app. This platform offers a multitude of options for both new and experienced bettors, providing a comprehensive suite of features designed to enhance the betting experience. In this article, we will delve into various aspects of 1xBet, from its key features to the benefits it offers to users.
1xBet is a robust online betting platform that caters to users looking to place bets on various sports, casino games, and other entertainment options. Founded in 2007, it has rapidly expanded its reach across the globe, gaining a reputation for its wide range of betting markets and user-friendly interface. With a focus on customer satisfaction, 1xBet continually adapts to the evolving landscape of online betting.
The first step to enjoying the benefits of 1xBet is the registration process. Users can quickly sign up by providing their details or using one of the many social media platforms for easy registration. This streamlined process allows new users to set up their accounts and start betting within minutes, making it highly accessible for everyone.

One of the standout features of 1xBet is its extensive selection of betting markets. Whether you are a fan of football, basketball, tennis, or even eSports, 1xBet has something for everyone. The platform offers competitive odds across various sports events, allowing bettors to find favorable wagering opportunities. Additionally, 1xBet features several types of bets, including live betting, outright betting, and more, catering to all betting styles.
The 1xBet app enhances the betting experience significantly by bringing the full functionality of the website to mobile devices. Available for both Android and iOS users, the app allows bettors to place wagers, access live streams, and follow real-time updates with just a few taps on their screens. The app boasts a user-friendly interface, ensuring that navigating through various markets and features is seamless, even for those new to online betting.
1xBet is well-known for its generous promotions and bonuses, which are designed to attract new users and keep existing ones engaged. Upon registration, new users can take advantage of a welcome bonus that often includes a match on their initial deposit. Throughout the year, the platform runs various promotions, including cashback offers, free bets, and referral bonuses. Such incentives not only enhance the betting experience but also provide bettors with additional value for their wagers.

Live betting has become increasingly popular among bettors, and 1xBet has embraced this trend. The platform allows users to place bets on ongoing matches and events, giving them the ability to make informed decisions based on real-time developments. With a plethora of live events available, bettors can enjoy an immersive experience, often with features like live streaming and statistical updates that keep them engaged throughout the matches.
When it comes to online betting, security is paramount. 1xBet employs advanced encryption technologies to protect users’ personal and financial information, ensuring a safe betting environment. Additionally, the platform is licensed and regulated by reputable authorities, which adds an extra layer of trust and credibility. Bettors can confidently enjoy their experience, knowing that their data is secure and that they are betting with a reputable operator.
Excellent customer support is a crucial aspect of any online betting platform, and 1xBet excels in this area. Users can reach out to the support team through various channels, including live chat, email, and telephone support. The customer support representatives are trained to assist with a range of inquiries, from technical issues to betting-related questions, ensuring that users can access help when needed.
In summary, 1xBet stands out as a premier online betting platform, offering a rich array of features and benefits to its users. With an easy registration process, a diverse selection of betting markets, generous promotions, and top-notch security measures, it is a go-to choice for both novice and seasoned bettors. The introduction of the 1xBet app further enhances its appeal, allowing users to bet conveniently from anywhere at any time. As the world of online betting continues to evolve, 1xBet remains committed to providing an exceptional experience to its users.
The post Exploring the Features and Benefits of 1xBet first appeared on .
]]>