/** * 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' ) ), ); } } – Официальный сайт Pinco играть онлайн Зеркало и вход.20233 – Chambers Of Vikramaditya

– Официальный сайт Pinco играть онлайн Зеркало и вход.20233

Пинко казино – Официальный сайт Pinco играть онлайн | Зеркало и вход

Если вы ищете официальный сайт pinco , где можно играть онлайн, то вы на правом пути. В этом руководстве мы рассмотрим, как найти официальный сайт Pinco, а также как играть на нем.

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

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

Чтобы найти зеркало Pinco, вам нужно ввести в поисковике “Pinco зеркало” или “Pinco официальный сайт”. Вам будет предложено несколько результатов, из которых вы можете выбрать подходящий.

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

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

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

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

Пинко казино – Официальный сайт Pinco играть онлайн

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

Официальный сайт Pinco предлагает игрокам широкий спектр игр, включая:

  • Слоты: от классических слотов до новых и инновационных игр
  • Карточные игры: покер, блэкджек, бахаре и другие
  • Рулетка: классическая рулетка и ее варианты
  • Другие игры: кено, лото и другие

Чтобы начать играть на официальном сайте Pinco, вам нужно выполнить следующие шаги:

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

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

    Зеркало Pinco казино

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

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

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

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

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

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

    Вход на официальный сайт Pinco казино

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

    Когда вы откроете сайт, вы увидите страницу входа. Введите ваш логин и пароль, которые вы получили при регистрации на сайте.

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

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

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

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

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