/** * REST API: WP_REST_Post_Types_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class to access post types via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Post_Types_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'types'; } /** * Registers the routes for post types. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'type' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public post types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { if ( $request->is_method( 'HEAD' ) ) { // Return early as this handler doesn't add any response headers. return new WP_REST_Response( array() ); } $data = array(); $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( 'edit' === $request['context'] && ! current_user_can( $type->cap->edit_posts ) ) { continue; } $post_type = $this->prepare_item_for_response( $type, $request ); $data[ $type->name ] = $this->prepare_response_for_collection( $post_type ); } return rest_ensure_response( $data ); } /** * Retrieves a specific post type. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $obj = get_post_type_object( $request['type'] ); if ( empty( $obj ) ) { return new WP_Error( 'rest_type_invalid', __( 'Invalid post type.' ), array( 'status' => 404 ) ); } if ( empty( $obj->show_in_rest ) ) { return new WP_Error( 'rest_cannot_read_type', __( 'Cannot view post type.' ), array( 'status' => rest_authorization_required_code() ) ); } if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } $data = $this->prepare_item_for_response( $obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a post type object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$post_type` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Post_Type $item Post type object. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $post_type = $item; // Don't prepare the response body for HEAD requests. if ( $request->is_method( 'HEAD' ) ) { /** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php */ return apply_filters( 'rest_prepare_post_type', new WP_REST_Response( array() ), $post_type, $request ); } $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) ); $taxonomies = wp_list_pluck( $taxonomies, 'name' ); $base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name; $namespace = ! empty( $post_type->rest_namespace ) ? $post_type->rest_namespace : 'wp/v2'; $supports = get_all_post_type_supports( $post_type->name ); $fields = $this->get_fields_for_response( $request ); $data = array(); if ( rest_is_field_included( 'capabilities', $fields ) ) { $data['capabilities'] = $post_type->cap; } if ( rest_is_field_included( 'description', $fields ) ) { $data['description'] = $post_type->description; } if ( rest_is_field_included( 'hierarchical', $fields ) ) { $data['hierarchical'] = $post_type->hierarchical; } if ( rest_is_field_included( 'has_archive', $fields ) ) { $data['has_archive'] = $post_type->has_archive; } if ( rest_is_field_included( 'visibility', $fields ) ) { $data['visibility'] = array( 'show_in_nav_menus' => (bool) $post_type->show_in_nav_menus, 'show_ui' => (bool) $post_type->show_ui, ); } if ( rest_is_field_included( 'viewable', $fields ) ) { $data['viewable'] = is_post_type_viewable( $post_type ); } if ( rest_is_field_included( 'labels', $fields ) ) { $data['labels'] = $post_type->labels; } if ( rest_is_field_included( 'name', $fields ) ) { $data['name'] = $post_type->label; } if ( rest_is_field_included( 'slug', $fields ) ) { $data['slug'] = $post_type->name; } if ( rest_is_field_included( 'icon', $fields ) ) { $data['icon'] = $post_type->menu_icon; } if ( rest_is_field_included( 'supports', $fields ) ) { $data['supports'] = $supports; } if ( rest_is_field_included( 'taxonomies', $fields ) ) { $data['taxonomies'] = array_values( $taxonomies ); } if ( rest_is_field_included( 'rest_base', $fields ) ) { $data['rest_base'] = $base; } if ( rest_is_field_included( 'rest_namespace', $fields ) ) { $data['rest_namespace'] = $namespace; } if ( rest_is_field_included( 'template', $fields ) ) { $data['template'] = $post_type->template ?? array(); } if ( rest_is_field_included( 'template_lock', $fields ) ) { $data['template_lock'] = ! empty( $post_type->template_lock ) ? $post_type->template_lock : false; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $post_type ) ); } /** * Filters a post type returned from the REST API. * * Allows modification of the post type data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Post_Type $post_type The original post type object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Post_Type $post_type The post type. * @return array Links for the given post type. */ protected function prepare_links( $post_type ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( rest_get_route_for_post_type_items( $post_type->name ) ), ), ); } /** * Retrieves the post type's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 4.8.0 The `supports` property was added. * @since 5.9.0 The `visibility` and `rest_namespace` properties were added. * @since 6.1.0 The `icon` property was added. * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'type', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the post type should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'viewable' => array( 'description' => __( 'Whether or not the post type can be viewed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the post type for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'supports' => array( 'description' => __( 'All features, supported by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'has_archive' => array( 'description' => __( 'If the value is a string, the value will be used as the archive slug. If the value is false the post type has no archive.' ), 'type' => array( 'string', 'boolean' ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'taxonomies' => array( 'description' => __( 'Taxonomies associated with post type.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST route\'s namespace for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this post type.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the post type available for selection in navigation menus.' ), 'type' => 'boolean', ), ), ), 'icon' => array( 'description' => __( 'The icon for the post type.' ), 'type' => array( 'string', 'null' ), 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'template' => array( 'type' => array( 'array' ), 'description' => __( 'The block template associated with the post type.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), 'template_lock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'description' => __( 'The template_lock associated with the post type, or false if none.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } Casino Megapari tragamonedas y juegos en vivo disponibles.2525 – Chambers Of Vikramaditya

Casino Megapari tragamonedas y juegos en vivo disponibles.2525

Casino Megapari – tragamonedas y juegos en vivo disponibles

¿Buscas un casino en línea que ofrezca una amplia variedad de opciones de juego? Entonces, Casino Megapari es tu mejor opción. Con una amplia gama de tragamonedas y juegos en vivo disponibles, es el lugar perfecto para aquellos que buscan una experiencia de juego emocionante y divertida.

En Casino Megapari, podrás encontrar una gran variedad de tragamonedas, desde clásicos como Book of Ra y Starburst hasta nuevos lanzamientos como Reactoonz y Fire Joker. Además, también ofrecemos una amplia gama de juegos de mesa, como blackjack, ruleta y póker, para aquellos que buscan una experiencia de juego más tradicional.

Además, en Casino Megapari, también podrás disfrutar de juegos en vivo, como el blackjack en vivo y la ruleta en vivo, que te permiten interactuar con otros jugadores y con los dealers en tiempo real. Esto te da la oportunidad de experimentar la emoción del juego en vivo, sin dejar tu hogar.

¿Por qué elegir Casino Megapari? Porque ofrecemos una amplia variedad de opciones de juego, una amplia gama de tragamonedas y juegos en vivo, y un servicio al cliente de alta calidad. Además, también ofrecemos una amplia gama de promociones y bonificaciones para nuevos y veteranos jugadores, para que puedas disfrutar de tu experiencia de juego al máximo.

Así que, ¿qué esperas? Regístrate en Casino Megapari hoy mismo y comienza a disfrutar de tus juegos favoritos. ¡La diversión está a tu alcance!

Condiciones de uso: Es importante megapari app leer y aceptar las condiciones de uso antes de jugar. ¡Esperamos que disfrutes de tu experiencia en Casino Megapari!

Descubre los mejores tragamonedas y slots en línea

En Megapari Casino, tenemos una amplia variedad de tragamonedas y slots que te ofrecen la oportunidad de ganar grandes premios. Nuestros juegos de azar están diseñados para proporcionarte una experiencia emocionante y divertida. ¡Descubre los mejores tragamonedas y slots en línea y comienza a jugar ahora!

Entre nuestros juegos de azar más populares, encontramos títulos como Book of Ra, Starburst y Gonzo’s Quest. Estos juegos de azar han sido diseñados para proporcionarte una experiencia emocionante y divertida, con gráficos y efectos visuales impresionantes. ¡Y, por supuesto, hay muchos más donde elegir!

En Megapari Casino, también ofrecemos una amplia variedad de tragamonedas y slots con jackpots progresivos. Estos juegos de azar ofrecen la oportunidad de ganar grandes premios, ya que el jackpot crece con cada apuesta que se realiza. ¡Es una oportunidad que no puedes perder!

¡No esperes más! Regístrate en Megapari Casino y comienza a jugar a nuestros mejores tragamonedas y slots en línea. ¡Recuerda que, en Megapari Casino, siempre hay algo nuevo y emocionante en camino!

Juegos en vivo y torneos en directo en Casino Megapari

En Casino Megapari, puedes disfrutar de una variedad de juegos en vivo y torneos en directo, lo que te permite experimentar la emoción de jugar en un casino tradicional desde la comodidad de tu propio hogar.

Entre los juegos en vivo, puedes encontrar opciones como Blackjack Live, Roulette Live y Baccarat Live, que te permiten interactuar con los dealers y otros jugadores en tiempo real.

Juego
Descripción

Blackjack Live Un juego de Blackjack tradicional con un dealer en vivo que te hace apuestas y te entrega las cartas. Roulette Live Una mesa de Roulette en vivo con un dealer que lanza la pelota y te permite apostar en las diferentes áreas del tablero. Baccarat Live Un juego de Baccarat en vivo con un dealer que entrega las cartas y te permite apostar en el resultado del juego.

Además, Casino Megapari también ofrece torneos en directo, como el Megapari Poker Tour, que te permite competir contra otros jugadores y ganar premios.

Para participar en los torneos, debes registrarte en el sitio web de Casino Megapari y depositar una cantidad mínima de dinero para poder jugar.

Recuerda que, al jugar en Casino Megapari, debes ser consciente de tus limitaciones y no jugar más de lo que puedas permitirte.

¡Comienza a disfrutar de los juegos en vivo y torneos en directo en Casino Megapari hoy mismo!

Por qué elegir Casino Megapari?

Si estás buscando un casino en línea que ofrezca una amplia variedad de opciones de juego, Casino Megapari es una excelente elección. Con una amplia gama de tragamonedas y juegos en vivo disponibles, es el lugar perfecto para aquellos que buscan una experiencia de juego emocionante y divertida.

Una de las razones por las que Casino Megapari es una excelente elección es su amplia variedad de opciones de juego. Ofrece más de 1.000 juegos de tragamonedas, incluyendo títulos clásicos y nuevos lanzamientos. Además, también ofrece una amplia variedad de juegos en vivo, incluyendo blackjack, ruleta y poker.

Otra razón por la que Casino Megapari es una excelente elección es su apuesta deportiva. Ofrece una amplia variedad de opciones de apuesta, incluyendo fútbol, baloncesto, tenis y más. Además, también ofrece una amplia variedad de cupones y promociones para aquellos que buscan aumentar sus ganancias.

Además, Casino Megapari también ofrece una amplia variedad de opciones de pago, incluyendo tarjetas de crédito, tarjetas de débito y servicios de pago en línea. Esto hace que sea fácil y conveniente para los jugadores depositar y retirar fondos.

  • Amplia variedad de opciones de juego
  • Opciones de apuesta deportiva
  • Opciones de pago convenientes
  • Apoyo al cliente disponible 24/7

En resumen, Casino Megapari es una excelente elección para aquellos que buscan una experiencia de juego emocionante y divertida. Con su amplia variedad de opciones de juego, opciones de apuesta deportiva y opciones de pago convenientes, es el lugar perfecto para aquellos que buscan una experiencia de juego de alta calidad.