/** * 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' ) ), ); } } Pokerdom – Официальный сайт онлайн казино Покердом 2026.2437 (2) – Chambers Of Vikramaditya

Pokerdom – Официальный сайт онлайн казино Покердом 2026.2437 (2)

Pokerdom – Официальный сайт онлайн казино Покердом (2026)

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

Однако, не все игроки знают, что официальный сайт Покердом имеет зеркало, которое позволяет игрокам доступаться казино, если официальный сайт заблокирован. Зеркало Покердом – это зеркало официального сайта, которое позволяет игрокам играть в казино, не зависящий от блокировки официального сайта.

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

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

Важно! Официальный сайт Покердом – это безопасное и надежное место, где вы можете играть в казино, не опасаясь за свою безопасность. Также, официальный сайт Покердом имеет зеркало, которое позволяет игрокам доступаться казино, если официальный сайт заблокирован.

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

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

Еще одним преимуществом является безопасность. Pokerdom использует современные технологии для обеспечения безопасности игроков, что обеспечивает безопасность их данных и средств.

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

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

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

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

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

  • Доступность
  • Большой выбор игр
  • Безопасность
  • Бонусы и турниры
  • Поддержка
  • Информация о новых играх и турнирах
  • Информация о правилах и условиях игры

Как начать играть в онлайн-казино Pokerdom

Для начала играть в онлайн-казино Pokerdom вам нужно зарегистрироваться на официальном сайте pokerdom.ru. Вам потребуется только несколько минут, чтобы создать аккаунт и начать играть.

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

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

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

Шаг 1: Регистрация
Шаг 2: Выбор игры
Шаг 3: Начало игры

Зарегистрируйтесь на официальном сайте pokerdom.ru Выберите игру, которая вам понравится Начните играть на реальные деньги или на тестовые

Бонусы и акции в онлайн-казино Pokerdom

Покердом – официальный сайт онлайн-казино, предлагает своим игрокам множество бонусов и акций, чтобы сделать игру еще более интересной и выгодной.

Один из самых популярных бонусов – бонус на первый депозит, который может достигать 100% от суммы депозита. Это означает, что игрок может получить дополнительные деньги для игры, просто сделав первый депозит на официальном сайте Pokerdom.

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

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

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

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

Также, на официальном сайте Pokerdom можно найти информацию о различных играх, которые предлагает онлайн-казино, а также о правилах и условиях игры. Это поможет игрокам лучше понять, как играть в онлайн-казино и как получать выгоды.

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