/** * 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 Casino.3942 – Chambers Of Vikramaditya

– Официальный сайт Pinco Casino.3942

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

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

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

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

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

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

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

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

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

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

Преимущества игры в Pinco Casino

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

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

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

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

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

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

Если вы хотите начать играть в Pinco Casino, то вам нужно просто перейти по ссылку https://azcongress.ru/ и зарегистрироваться. Вам будет доступен доступ к играм и бонусам.

Также, если вы ищете зеркало Pinco Casino, то вам можно перейти по ссылке https://azcongress.ru/ .

Надеемся, что вы будете играть в Pinco Casino и наслаждаться игрой!

Как начать играть в Pinco Casino

Если вы еще не зарегистрировались в Pinco Casino, то самое время это сделать! Вам нужно только кликнуть по ссылке “Регистрация” на официальном сайте Pinco Casino и заполнить форму регистрации. Вам потребуется указать некоторые личные данные, такие как имя, фамилия, адрес электронной почты и пароль. Проверьте, что вы ввели все данные правильно, и нажмите на кнопку “Зарегистрироваться”.

Шаг 2: Вход в Pinco Casino

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

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

Теперь вы готовы начать играть в Pinco Casino! Вы можете выбрать из широкого спектра игровых автоматов, включая слоты, рулетку, блэкджек и другие. Убедитесь, что вы понимаете правила игры и условия игры, прежде чем начать играть.

Напоминание: в Pinco Casino доступны только для игроков старше 18 лет. Если вы не достигли этого возраста, вам не рекомендуется играть в казино.

Бонусы и акции в Pinco Casino

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

Бонусы для новых игроков

Для новых игроков Pinco Casino предлагает приветственный бонус в размере 100% от первого депозита, до 10 000 рублей. Это отличный способ начать играть и получить дополнительные деньги для игры.

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

Бонусы для постоянных игроков

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

Бонус за лояльность – 10% от суммы депозита каждый месяц;

Бонус за игру – 5% от суммы выигрыша каждый день;

Бонус за рефералов – 10% от суммы депозита каждого реферала, который зарегистрировался на нашем сайте.

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

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