/** * 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' ) ), ); } } Sultan Games в Казахстане — акции 2025 – Chambers Of Vikramaditya

Sultan Games в Казахстане — акции 2025

Казино Sultan Games в Казахстане – Удобный вход и безопасная игра

В современном мире азартных игр, где каждый день становится все более популярным, казино Sultan Games является одним из лидеров в Казахстане. Это не только потому, что они предлагают широкий спектр игр, но и потому, что они обеспечивают безопасность и комфорт для своих игроков.

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

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

Один из преимуществ казино Sultan Games – это его удобный вход. Игроки могут зарегистрироваться на сайте, используя свои email и пароль, и начать играть. Компания также предлагает мобильное приложение, которое позволяет игрокам играть на любом устройстве.

Безопасность игроков – это приоритет для казино Sultan Games. Компания использует современные технологии для обеспечения безопасности игроков, включая шифрование данных и защиту от мошенничества. Игроки могут быть уверены, что их данные и деньги безопасны.

Если вы ищете казино, где можно играть безопасно и комфортно, то казино Sultan Games – это ваш выбор. Компания предлагает широкий спектр игр, удобный вход и безопасность, чтобы обеспечить вам лучшие условия для игры.

Также, если вы ищете промокод для казино Sultan Games, то вы можете использовать сultan games промокод или султан казино промокод бездепозитный бонус. Это поможет вам начать играть с минимальной суммой депозита.

В любом случае, казино Sultan Games – это отличный выбор для игроков, которые ищут безопасное и комфортное место для игры. Компания предлагает широкий спектр игр, удобный вход и безопасность, чтобы обеспечить вам лучшие условия для игры.

Обратите внимание, что казино Sultan Games имеет рабочее зеркало, которое доступно по адресу султан казино рабочее зеркало.

Удобство входа: регистрация и авторизация

Для регистрации в казино Sultan Games вам нужно выполнить несколько шагов. Сначала вам нужно выбрать тип аккаунта – игрок или дилер. Затем вам нужно ввести свои личные данные, такие как имя, фамилия, адрес электронной почты и пароль. Вам также нужно выбрать валюту, в которой вы хотите играть. После регистрации вам будет отправлено письмо с подтверждением регистрации.

Авторизация – это процесс, который позволяет вам войти в свой аккаунт и начать играть. Для авторизации вам нужно ввести свой логин и пароль, которые вы выбрали при регистрации. Если вы забыли свой пароль, вы можете запросить новый пароль на странице регистрации.

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

Также, в казино Sultan Games есть возможность использовать промокоды, которые позволяют вам получить дополнительные бонусы и преимущества. Например, с помощью промокода “SULTAN10” вы можете получить 10% бонус на свой депозит.

В целом, регистрация и авторизация в казино Sultan Games – это простой и безопасный процесс, который позволяет вам начать играть и получать выгоды от игры. Если у вас возникнут вопросы или проблемы, вы можете обратиться к поддержке казино, которая будет рада помочь вам.

Безопасность игры: защита данных и транзакций

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

Кроме того, мы используем защищенный протокол SSL (Secure Sockets Layer), который обеспечивает безопасность передачи данных между игроками и казино. Это означает, что все данные, передаваемые между игроками и казино, защищены от доступа третьих лиц.

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

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

Наконец, мы используем международные стандарты безопасности, такие как PCI-DSS (Payment Card Industry Data Security Standard), чтобы обеспечить безопасность обработки платежей. Это означает, что все платежи, сделанные игроками, защищены от доступа третьих лиц.

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

Султан Казино – это лучшее казино в Казахстане!

Получите скидку 100% на свой первый депозит с промокодом “SULTAN100”!

Преимущества игры в казино Sultan Games

Один из главных преимуществ игры в казино Sultan Games – это огромный выбор игр. В казино представлено более 1 000 игр, включая слоты, карточные игры, рулетку и другие. Это означает, что вы всегда сможете найти игру, которая вам понравится.

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

Еще одним преимуществом игры в казино Sultan Games является безопасность. Казино использует современные технологии для обеспечения безопасности игроков, включая шифрование данных и проверку наличия лицензии.

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

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

В целом, казино Sultan Games – это отличное место для игроков, которые ищут безопасной и интересной игры. С его огромным выбором игр, безопасностью и бонусами, это казино является одним из лучших на рынке.

Leave a Comment

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