/** * 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 – официальный сайт – вход и зеркало 2025.1054 – Chambers Of Vikramaditya

Gama Casino Online – официальный сайт – вход и зеркало 2025.1054

Gama Casino Online – официальный сайт – вход и зеркало (2025)

Если вы ищете надежный и безопасный способ играть в онлайн-казино, вам нужно обратить внимание на Gama Casino Online. Это официальный сайт, который предлагает широкий спектр игр и услуг для игроков из России и других стран.

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

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

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

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

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

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

Если вы ищете надежный и безопасный способ играть в онлайн-казино, вам нужно обратить внимание на Gama Casino Online. Это официальный сайт, который предлагает игрокам широкий спектр игр и услуг для игроков из России и других стран.

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

Надеемся, что наша статья поможет вам найти лучший способ играть в онлайн-казино и насладиться игрой!

Официальный сайт Gama Casino Online

Официальный сайт Gama Casino Online доступен по адресу [www.gamacasino.com](http://www.gamacasino.com). Вам не нужно искать зеркало или альтернативный сайт, потому что официальный сайт является safest и наиболее удобным способом доступа к играм и услугам Gama Casino Online.

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

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

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

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

Вход на официальный сайт Gama Casino Online

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

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

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

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

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

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

Начните играть сейчас!

Официальный сайт Gama Casino Online – это лучший способ играть в онлайн-казино.

Зеркало официального сайта Gama Casino Online

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

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

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

Вот почему зеркало официального сайта Gama Casino Online может быть полезным для вас:

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

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