/** * 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' ) ), ); } } конторы Mostbet.2270 – Chambers Of Vikramaditya

конторы Mostbet.2270

Обзор букмекерской конторы Mostbet

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

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

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

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

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

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

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

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

Преимущества и функции Mostbet

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

Удобство использования

Мостбет официальный сайт доступен на русском языке, что делает его удобным для игроков из России. Кроме того, Mostbet зеркало доступно для игроков, которые не могут доступаться официальному сайту из-за географических ограничений.

Большой выбор ставок

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

Высокие коэффициенты

Mostbet предлагает высокие коэффициенты, что делает его привлекательным для игроков, которые ищут высокие прибыли.

Бонусы и акции

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

Мобильная версия

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

24/7 поддержка

Mostbet предлагает 24/7 поддержку, что позволяет игрокам получать помощь в любое время суток.

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

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

Многоязычность

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

Многофункциональный калькулятор

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

Многофункциональный чат

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

Многофункциональный календарь

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

Ограничения и недостатки Mostbet

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

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

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

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

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

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

Важные советы для игроков

  • Выберите валюту для игры: Mostbet предлагает несколько валют, включая доллары, евро и рубли.
  • Играйте ответственно: Mostbet – это онлайн-казино, и играть нужно ответственно.

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

Мостбет вход – это процесс входа на сайт Mostbet, который доступен для игроков, зарегистрированных на сайте.