/** * 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 – Promos aujourd’hui – Chambers Of Vikramaditya

Betify – Promos aujourd’hui

Betify Casino en Ligne | Jouez sur Betify avec 1000 €

Vous cherchez un casino en ligne sécurisé et réputé ? Vous êtes au bon endroit ! Betify Casino en Ligne est l’un des meilleurs casinos en ligne français, proposant des jeux de casino de haute qualité et des bonus attrayants.

Grâce à notre application Betify, vous pouvez jouer partout et à tout moment, où que vous soyez. Notre plateforme est conçue pour offrir une expérience de jeu de casino en ligne exceptionnelle, avec des jeux de table, des machines à sous et des jeux de loterie.

Vous pouvez bénéficier d’un bonus de bienvenue de 1000 €, sans avoir à déposer d’argent. C’est un excellent moyen de commencer votre aventure de jeu de casino en ligne.

Nous sommes fiers de notre réputation de casino en ligne fiable et sécurisé. Nous nous engageons à offrir une expérience de jeu de casino en ligne sécurisée et amusante.

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 Betify : 1000 €

Bon plan pour les nouveaux joueurs !

Connexion Betify : Accès rapide à votre compte

Avis Betify : Les joueurs s’accordent pour dire que c’est l’un des meilleurs casinos en ligne français !

Bonus Betify : 1000 € pour les nouveaux joueurs !

Application Betify : Jouez partout et à tout moment avec notre application mobile !

Casino Betify : Les jeux de casino de haute qualité, les bonus attrayants et la sécurité sont au cœur de notre offre !

Betify France : Le casino en ligne français préféré des joueurs !

Bonus Betify : 1000 € pour les nouveaux joueurs !

Betify Paris Sportif : Les paris sportifs en direct avec Betify !

Casino Betify : Les jeux de casino de haute qualité, les bonus attrayants et la sécurité sont au cœur de notre offre !

Betify Application : Jouez partout et à tout moment avec notre application mobile !

Betify Casino : Les jeux de casino de haute qualité, les bonus attrayants et la sécurité sont au cœur de notre offre !

Betify : Le casino en ligne français préféré des joueurs !

betify avis : Les joueurs s’accordent pour dire que c’est l’un des meilleurs casinos en ligne français !

Betify Connexion : Accès rapide à votre compte !

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

Si vous cherchez un casino en ligne qui offre un bonus attractif et une variété de jeux, vous êtes au bon endroit ! Betify Casino en Ligne est l’un des meilleurs choix pour les amateurs de jeu en ligne. Avec un bonus de bienvenue de 1000 €, vous pouvez commencer à jouer immédiatement.

Le Bonus Betify : Comment Faire Face à la Concurrence

Le bonus de bienvenue de 1000 € est un excellent moyen de commencer à jouer sur Betify Casino en Ligne. Mais comment faire face à la concurrence ? La réponse est simple : il suffit de créer un compte et de déposer une somme minimale pour bénéficier du bonus. Cela vous donnera accès à une variété de jeux, y compris les jeux de table, les machines à sous et les jeux de loterie.

Il est important de noter que le bonus est valable pendant une période déterminée, donc il est important de jouer rapidement pour en profiter.

Les Avantages de Betify Casino en Ligne

Betify Casino en Ligne offre de nombreux avantages, notamment une variété de jeux, un bonus de bienvenue généreux et une connexion sécurisée. De plus, le site est disponible en français, ce qui facilite la navigation pour les joueurs francophones.

En outre, Betify Casino en Ligne propose une application mobile pour jouer en ligne partout et à tout moment. Cela signifie que vous pouvez jouer à votre jeu préféré, où que vous soyez.

En résumé, Betify Casino en Ligne est un excellent choix pour les amateurs de jeu en ligne. Avec son bonus de bienvenue de 1000 €, sa variété de jeux et sa connexion sécurisée, il est difficile de trouver un meilleur choix.

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 1000 € à votre disposition, vous pouvez vous lancer dans l’aventure et découvrir les joies du jeu en ligne.

Le casino Betify est une plateforme de jeu en ligne qui propose une variété de jeux de hasard, de jeux de table et de jeux de loterie. Vous pouvez choisir parmi plus de 500 jeux de hasard, y compris les jeux de roue, les jeux de cartes et les jeux de machines à sous.

Le bonus de bienvenue de Betify est un excellent moyen de commencer votre aventure de jeu en ligne. Vous pouvez bénéficier d’un bonus de 1000 €, ce qui vous permettra de jouer sans se soucier de vos dépenses initiales.

Le casino Betify est également disponible sur mobile, ce qui signifie que vous pouvez jouer partout et à tout moment. Vous pouvez télécharger l’application Betify sur votre smartphone ou votre tablette et commencer à jouer immédiatement.

Les paris sportifs sont également une option disponible sur Betify. Vous pouvez parier sur vos équipes préférées et gagner des gains substantiels. Le casino Betify propose une variété de paris sportifs, y compris les paris sur les matchs de football, de basket-ball et de tennis.

En résumé, le casino Betify est une plateforme de jeu en ligne qui offre une variété de jeux de hasard, de jeux de table et de jeux de loterie. Avec un bonus de bienvenue de 1000 €, vous pouvez commencer votre aventure de jeu en ligne sans se soucier de vos dépenses initiales. N’hésitez pas à télécharger l’application Betify et à commencer à jouer immédiatement !

Vous pouvez également consulter les avis de Betify pour en savoir plus sur la plateforme et les expériences des autres joueurs. Les avis de Betify sont un excellent moyen de découvrir les forces et les faiblesses de la plateforme et de prendre une décision éclairée.

En résumé, le casino Betify est une plateforme de jeu en ligne qui offre une variété de jeux de hasard, de jeux de table et de jeux de loterie. Avec un bonus de bienvenue de 1000 €, vous pouvez commencer votre aventure de jeu en ligne sans se soucier de vos dépenses initiales. N’hésitez pas à télécharger l’application Betify et à commencer à jouer immédiatement !

Les avantages de jeu sur Betify

Sur Betify, vous bénéficiez d’un environnement de jeu sécurisé et fiable, où vous pouvez profiter de vos jeux préférés sans se soucier de la sécurité de vos transactions.

Grâce à notre connexion Betify, vous pouvez accéder à vos comptes et gérer vos dépôts et vos retraits avec facilité, partout où vous êtes.

Notre casino en ligne Betify France est conçu pour offrir une expérience de jeu unique et personnalisée, avec des jeux de casino, des sports et des loteries à votre portée.

Vous bénéficiez également d’un bonus Betify pour vous aider à démarrer votre aventure de jeu, ainsi que de nombreux autres avantages, tels que des promotions spéciales et des offres exclusives.

Nos applications Betify sont conçues pour vous offrir une expérience de jeu sur mesure, avec des fonctionnalités avancées et des graphiques clairs pour vous aider à gérer vos jeux et vos gains.

Sur Betify, vous pouvez également profiter de nos jeux de sport, tels que le football, le tennis et le basket-ball, ainsi que de nos loteries et de nos jeux de hasard.

En résumé, jouer sur Betify offre de nombreux avantages, tels que la sécurité, la flexibilité, les promotions et les offres exclusives, ainsi que l’accès à une grande variété de jeux de casino, de sports et de loteries.

Leave a Comment

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