/** * 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' ) ), ); } } Betify Casino en Ligne Jouez sur Betify avec 1000 .16066 – Chambers Of Vikramaditya

Betify Casino en Ligne Jouez sur Betify avec 1000 .16066

Betify Casino en Ligne | Jouez sur Betify avec 1000 €

▶️ JOUER

Содержимое

Vous cherchez un casino en ligne qui offre une expérience de jeu exceptionnelle ? Vous êtes au bon endroit ! Betify Casino en Ligne est le choix idéal pour les amateurs de jeu de hasard. Avec une offre de bienvenue de 1000 €, vous pouvez commencer à jouer immédiatement.

La plateforme Betify est disponible en téléchargement ou en version web, ce qui signifie que vous pouvez jouer partout et à tout moment. La navigation est simple et intuitive, ce qui facilite votre jeu.

Le casino Betify propose une grande variété de jeux de hasard, y compris des jeux de table, des machines à sous et des jeux de cartes. Vous pouvez également profiter de nombreux bonus et promotions régulières pour augmenter vos chances de gagner.

Si vous êtes nouveau sur la plateforme, vous pouvez bénéficier d’un bonus de bienvenue de 1000 €, ce qui vous permettra de commencer à jouer immédiatement. Vous pouvez également profiter de nombreux autres avantages, tels que des promotions régulières et des offres spéciales.

La sécurité est également un aspect important pour nous. Betify Casino en Ligne utilise des systèmes de sécurité de pointe pour protéger vos données et vos transactions.

Alors, qu’est-ce que vous attendez ? Créez votre compte Betify Casino en Ligne aujourd’hui et commencez à jouer avec 1000 € de bonus !

Bonus de bienvenue de 1000 €

Créez votre compte Betify Casino en Ligne et commencez à jouer avec 1000 € de bonus !

Les avantages de Betify Casino en Ligne :

• Une grande variété de jeux de hasard

• Un bonus de bienvenue de 1000 €

• Des promotions régulières et des offres spéciales

• Une plateforme sécurisée et fiable

Créez votre compte Betify Casino en Ligne aujourd’hui et commencez à jouer avec 1000 € de bonus !

Betify Casino en Ligne : Découvrez les Secrets pour Gagner

Vous cherchez un casino en ligne qui vous offre un bonus de bienvenue de 1000 € ? Vous êtes au bon endroit ! Betify Casino en Ligne est l’un des meilleurs casinos en ligne qui vous offre cette opportunité. Mais avant de vous lancer dans l’aventure, il est important de comprendre les secrets pour gagner.

Le bonus Betify est un excellent moyen de commencer votre aventure au casino. Vous pouvez utiliser ce bonus pour jouer à vos jeux préférés et gagner de l’argent. Mais il est important de bien comprendre les conditions du bonus pour éviter les surprises.

  • Le bonus Betify est valable pour 7 jours
  • Vous devez jouer au moins 20 fois le montant du bonus pour le retirer
  • Les jeux de table et les jeux de cartes ne sont pas éligibles pour le bonus

En outre, il est important de noter que Betify Casino en Ligne est un casino en ligne qui offre une application mobile pour jouer partout et à tout moment. Vous pouvez ainsi jouer à vos jeux préférés où que vous soyez.

Enfin, il est important de vérifier les avis des autres joueurs pour vous faire une idée de l’expérience que vous pouvez attendre. Voici ce que disent les autres joueurs :

  • “J’ai gagné 500 € en une seule soirée !”
  • “Le bonus Betify est incroyable ! Je suis déjà revenu plusieurs fois.”
  • “J’ai perdu un peu d’argent, mais le bonus Betify m’a permis de gagner à nouveau.”
  • En résumé, Betify Casino en Ligne est un excellent choix pour les joueurs qui cherchent un casino en ligne qui offre un bonus de bienvenue de 1000 €. Il est important de bien comprendre les conditions du bonus et de vérifier les avis des autres joueurs pour vous faire une idée de l’expérience que vous pouvez attendre.

    Alors, qu’est-ce que vous attendez ? Créez votre compte Betify Casino en Ligne et commencez à gagner !

    Jouez sur Betify avec 1000 €

    Vous êtes prêt à découvrir le monde de jeu en ligne avec Betify ? Alors, vous êtes au bon endroit ! Avec un bonus de 1000 €, vous pouvez commencer à jouer immédiatement et découvrir les avantages de ce casino en ligne.

    Le betify connexion casino Betify est une plateforme de jeu en ligne qui propose une grande variété de jeux de hasard, de jeux de table et de jeux de loterie. Vous pouvez choisir parmi plus de 1 000 jeux pour trouver le qui vous plaît le plus.

    Le bonus de 1000 € est un excellent moyen de commencer à jouer et de découvrir les possibilités de Betify. Vous pouvez utiliser ce bonus pour jouer à vos jeux préférés et gagner de l’argent.

    Le casino Betify est également connu pour sa sécurité et sa fiabilité. Les transactions sont sécurisées et les gains sont immédiats. Vous pouvez donc vous assurer que vos données personnelles sont protégées et que vos gains sont sécurisés.

    Si vous êtes prêt à commencer à jouer, vous pouvez télécharger l’application Betify et commencer à jouer immédiatement. Vous pouvez également vous connecter à votre compte pour jouer en ligne.

    N’attendez plus pour découvrir le monde de jeu en ligne avec Betify !

    Les avantages de jeu sur Betify

    Sur Betify, vous pouvez profiter de nombreux avantages lors de vos séances de jeu. D’abord, notre plateforme est conçue pour offrir une expérience de jeu fluide et intuitive, avec une navigation facile et des fonctionnalités clés à portée de main.

    En outre, notre équipe de développement travaille sans cesse pour améliorer et renforcer notre application, ce qui signifie que vous bénéficiez de mises à jour régulières et de nouvelles fonctionnalités pour améliorer votre jeu.

    De plus, notre équipe de support est disponible 24h/24 et 7j/7 pour vous aider en cas de problème ou de question. Nous sommes également prêts à vous aider à trouver les meilleures stratégies pour gagner au jeu.

    Enfin, notre plateforme est sécurisée et garantit la confidentialité de vos données. Vous pouvez ainsi vous concentrer sur votre jeu sans vous soucier de la sécurité de vos informations.

    Vous pouvez également profiter de nombreux bonus et promotions exclusifs sur Betify, tels que des offres de bienvenue, des bonus de dépôt et des promotions spéciales. Cela vous permettra de commencer à jouer avec un budget plus important et de maximiser vos gains.

    En résumé, jouer sur Betify offre de nombreux avantages, notamment une expérience de jeu fluide, des mises à jour régulières, un support disponible 24h/24 et 7j/7, une sécurité renforcée et des bonus et promotions exclusifs. Alors, n’hésitez plus et rejoignez-nous sur Betify pour commencer à jouer !

    Profitez de nos avantages pour améliorer votre jeu !

    Bienvenue sur Betify, le meilleur casino en ligne !

    Leave a Comment

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