/** * 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' ) ), ); } } онлайн – Gama Casino Online – обзор.6373 – Chambers Of Vikramaditya

онлайн – Gama Casino Online – обзор.6373

Гама казино онлайн – Gama Casino Online – обзор

Если вы ищете надежное и безопасное онлайн-казино, где можно играть в любое время и из любой точки мира, то Gama Casino Online – это ваш выбор. В этом обзоре мы рассмотрим все преимущества и недостатки этого онлайн-казино, чтобы помочь вам принять решение.

Гама казино – это международная онлайн-игровая платформа, которая предлагает игрокам более 1 000 игр, включая слоты, карточные игры, рулетку и другие. Платформа доступна на русском языке, что делает ее удобной для игроков из России и других стран, где русский язык является официальным.

Гама казино имеет лицензию на игорное дело, выдана в Мальте, что является одним из самых надежных и регулируемых игорных рынков в мире. Это означает, что игроки могут быть уверены в безопасности своих данных и средств.

Гама казино имеет несколько программ лояльности, которые позволяют игрокам получать бонусы и преимущества. Например, новый игрок может получить бонус в 100% от первого депозита, а также 100 бесплатных спин.

В целом, Gama Casino Online – это надежное и безопасное онлайн-казино, которое предлагает игрокам широкий выбор игр и программ лояльности. Если вы ищете онлайн-казино, где можно играть в любое время и из любой точки мира, то Gama Casino Online – это ваш выбор.

Надеемся, что наш обзор поможет вам принять решение и начать играть в Gama Casino Online.

Важно! Перед началом игры, убедитесь, что вы знакомы с условиями и правилами Gama Casino Online, а также с программой лояльности, чтобы максимизировать свои шансы выигрыша.

Обзор Gama Casino Online

Гама казино – это молодое онлайн-казино, которое было основано в 2020 году. Хотя это новое, Gama Casino Online уже получило признание в игровом сообществе за свою надежность и безопасность. Казино лицензировано в Мальте и регулируется местными властями, что обеспечивает безопасность и честность игр.

В Gama Casino Online предлагается гамма казино широкий спектр игр, включая слоты, карточные игры, рулетку и другие. Игроки могут выбрать игру, которая им понравится, и начать играть с минимальной ставкой 0,20 евро. Казино также предлагает несколько пакетов бонусов, включая приветственный бонус, бонус за депозит и бонус за лояльность.

Гама казино также предлагает несколько способов оплаты, включая банковские карты, электронные деньги и другие. Казино обеспечивает быстрый и безопасный процесс оплаты, чтобы игроки могли начать играть как можно скорее.

В целом, Gama Casino Online – это надежное и безопасное онлайн-казино, которое предлагает широкий спектр игр и пакеты бонусов. Если вы ищете новый и надежный партнер для игр, то Gama Casino Online – это отличный выбор.

Преимущества и недостатки онлайн-казино

Преимущества онлайн-казино:

Гама казино (Gamma Casino) предлагает множество преимуществ, которые делают его привлекательным для игроков. В частности, онлайн-казино позволяет играть в любое время и из любого места, где есть доступ к интернету. Это особенно удобно для тех, кто имеет ограниченный доступ к традиционным игорным заведениям.

Большой выбор иг

Гама казино (Gamma Casino) предлагает огромный выбор иг, включая слоты, карточные игры, рулетку и другие. Это позволяет игрокам выбрать игру, которая лучше всего подходит им, и играть в нее в любое время.

Промокоды и бонусы

Гама казино (Gamma Casino) регулярно предлагает промокоды и бонусы, которые могут помочь игрокам увеличить свой банкролл. Это особенно полезно для новых игроков, которые только начали играть в онлайн-казино.

Недостатки онлайн-казино:

Хотя Гама казино (Gamma Casino) предлагает множество преимуществ, он также имеет свои недостатки. В частности, онлайн-казино может быть менее интерактивным, чем традиционные игорные заведения. Игроки могут чувствовать себя изолированными и не иметь возможности общения с другими игроками.

Безопасность

Гама казино (Gamma Casino) должен обеспечивать безопасность своих игроков, чтобы предотвратить мошенничество и другие виды мошенничества. Это может быть особенно важным для игроков, которые играют в онлайн-казино с большими суммами денег.

Гама казино (Gamma Casino) – это современный способ играть в казино, который предлагает множество преимуществ перед традиционными игорными заведениями. Однако, он также имеет свои недостатки, которые должны быть учитывы. Если вы ищете комфорт и удобство, то онлайн-казино может быть для вас. Но если вы ищете интерактивность и общение с другими игроками, то традиционные игорные заведения могут быть более подходящим выбором.

Как начать играть в Gama Casino Online

Если вы решили начать играть в Gama Casino Online, то сначала вам нужно зарегистрироваться на официальном сайте казино. Для этого вам нужно ввести свои личные данные, включая имя, фамилию, дату рождения и адрес электронной почты. Вам также нужно выбрать пароль, который будет использоваться для входа в вашу учетную запись.

После регистрации вы получите доступ к личному кабинету, где можно будет управлять вашими аккаунтами, просматривать историю игр и получать доступ к различным функциям казино.

Вам также нужно выбрать валюту, в которой вы будете играть. Gama Casino Online предлагает несколько валют, включая доллары США, евро и фунты стерлингов.

После выбора валюты вы можете начать играть в любые игры, которые вам понравились. Gama Casino Online предлагает широкий спектр игр, включая слоты, карточные игры, рулетку и другие.

Важно помнить, что Gama Casino Online предлагает несколько способов депозита, включая банковские карты, электронные кошельки и другие. Вы можете выбрать способ депозита, который вам удобен.

Вам также нужно помнить, что Gama Casino Online предлагает несколько программ лояльности, которые могут помочь вам заработать больше денег. Вы можете выбрать программу лояльности, которая вам понравилась.

В целом, Gama Casino Online – это отличное место для игроков, которые ищут развлекательные игры и возможность заработать деньги. Мы рекомендуем вам начать играть в Gama Casino Online и насладиться играми!