/** * 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' ) ), ); } } 1win официальный сайт букмекера Обзор и зеркало для входа.3879 (4) – Chambers Of Vikramaditya

1win официальный сайт букмекера Обзор и зеркало для входа.3879 (4)

1win официальный сайт букмекера — Обзор и зеркало для входа

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

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

Официальный сайт 1win предлагает множество функций, которые делают его удобным для игроков. В частности, на сайте есть функция поиска, которая позволяет найти нужные ставки быстро и легко. Кроме того, на сайте есть раздел “Мои ставки”, где вы можете отслеживать свои ставки и получать уведомления о результатах.

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

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

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

Важно: перед началом игры убедитесь, что вы знакомы с условиями и правилами 1win, чтобы обеспечить себе максимальную безопасность и комфорт при игре.

Никогда не забывайте о важности безопасности и комфорта при игре!

1win Официальный Сайт Букмекера

Если вы ищете официальный сайт букмекера 1win, то вы на правом пути. 1win – это популярный онлайн-казино и букмекер, который предлагает широкий спектр услуг для игроков из России и других стран.

1win Зеркало: Как Использовать

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

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

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

1win вход: Как Авторизоваться

Авторизоваться на 1win можно, используя ваш логин и пароль. Если вы еще не зарегистрированы, то вам нужно зарегистрироваться, используя форму регистрации на официальном сайте 1win.

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

1win ставки: Как Сделать Ставку

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

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

Обзор и Зеркало для Входа

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

Преимущества 1win

1win предлагает несколько преимуществ, которые делают его популярным среди игроков. В частности, он предлагает:

  • Высокие коэффициенты для спортивных событий;
  • Широкий спектр ставок, включая культурные и политические события;
  • Мобильное приложение для удобного доступа к услугам;
  • 24/7 поддержка для решения любых вопросов;
  • Широкий спектр опций для пополнения счета;

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

Если вы ищете официальный сайт 1win, то вы можете найти его по адресу https://www.1винскачать.рф/ . Однако, если сайт заблокирован, то вы можете использовать зеркало для входа.

Зеркало для входа – это альтернативный способ доступа к услугам 1win, если официальный сайт заблокирован. Мы рекомендуем использовать зеркало для входа, если вы не можете доступаться к официальному сайту.

Зеркало для входа: https://www.1винскачать.рф/ зеркало.com

Преимущества и Функции 1win

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

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

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

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

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