/** * 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' ) ), ); } } Məşhur_platforma_olan_casino_pinco_ilə_virtual_dünyada_səyahət_et_xəyalla – Chambers Of Vikramaditya

Məşhur_platforma_olan_casino_pinco_ilə_virtual_dünyada_səyahət_et_xəyalla

Məşhur platforma olan casino pinco ilə virtual dünyada səyahət et, xəyallarını gerçəkləşdir

Məşhur platforma olan casino pinco ilə virtual dünyada səyahət et, xəyallarını gerçəkləşdir. Bu platforma, oyun həvəskarları üçün ənənəvi kazino təcrübəsini evinizin rahatlığında təqdim edir. Yüksək texnologiyalı proqram təminatı, canlı diler oyunları və geniş oyun seçimi ilə casino pinco, onlayn oyun dünyasında özünü fərqləndirir. Hər səviyyəli oyunçu üçün uyğun olan bu platforma, həm təcrübəli, həm də yeni başlayanlar üçün ideal bir seçimdir.

Casino pinco, təkcə oyun təklif etmir, həmçinin oyunçularına yüksək səviyyəli xidmət və təhlükəsizlik də təmin edir. Müştəri dəstəyi 7/24 fəaliyyət göstərir və hər hansı bir sualınıza və ya problemə dərhal cavab verir. Təhlükəsiz ödəniş sistemləri və gizliliyin qorunması, oyunçuların rahatlığı və etimadını təmin edir. Bu platforma, oyun dünyasında yeni bir standart yaratmaq üçün çalışır.

Casino Pinco Platformasının Oyun Seçimləri

Casino pinco, müxtəlif oyun növləri ilə zengin bir oyun kataloquna malikdir. Slot oyunları, klassik kazino oyunları, canlı diler oyunları və digər maraqlı oyunlar burada əldə edilə bilər. Slot oyunları, müxtəlif mövzu və funksiyalara malikdir və hər oyunçu üçün bir seçim mövcuddur. Klassik kazino oyunları, rulet, blackjack, poker və baccarat kimi oyunları əhatə edir. Canlı diler oyunları isə, real dilerlərlə oyun oynamaq imkanı verir və oyun təcrübəsini daha da real edir. Hər oyun, yüksək keyfiyyətli qrafika və səs effektləri ilə diqqət çəkir.

Slot Oyunlarının Çeşitliliyi

Casino pinco-da təqdim edilən slot oyunları, müxtəlif oyun tərtibatçıları tərəfindən yaradılmışdır. Bu oyunlar, klassik meyvə slotlarından, müasir video slotlarına qədər geniş bir çeşiddə mövcuddur. Bəzi slot oyunları, böyük jackpotlar təqdim edir və oyunçulara böyük qazanmaq imkanı verir. Oyunların interfeysi istifadəçiyə dostdur və oyunçuların asanlıqla oyunlara başlamağa imkan verir. Slot oyunlarının hər biri, özünəməxsus mövzu və funksiyalara malikdir ki, bu da oyunçuların marağını artırır.

Oyun Növü Tərtibatçı Jackpot
Meyvə Slotu NetEnt Mövcuddur
Video Slotu Microgaming Böyük
Proqressiv Slotu Playtech Çox Böyük

Bu cədvəl, casino pinco platformasında mövcud olan bəzi slot oyunlarını və onların xüsusiyyətlərini göstərir. Oyunçular, öz zövqlərinə uyğun olan slot oyununu asanlıqla tapa bilər və böyük qazanmaq şansını əldə edə bilər. Platforma, daim yeni slot oyunları əlavə edir ki, bu da oyunçuların marağını daima canlı saxlayır.

Casino Pinco-da Bonuslar və Təkliflər

Casino pinco, oyunçularına müxtəlif bonuslar və təkliflərlə təmin edir. Yeni oyunçular üçün xoş gəlim bonusu, depozit bonusu, pulsuz fırlanmalar və digər maraqlı təkliflərlə oyunçuların sayı artırılır. Xoş gəlim bonusu, yeni oyunçuların platformaya qeydiyyat etdirərkən əldə etdikləri bonusdur və oyunçulara oyunlara başlamaq üçün əlavə vəsait təqdim edir. Depozit bonusu isə, oyunçuların depozit etdikləri məbləğin müəyyən faizini bonus şəklində əldə etmələrinə imkan verir. Pulsuz fırlanmalar isə, slot oyunlarında pulsuz olaraq oyun oynamaq imkanı verir. Bu bonuslar, oyunçuların oyun təcrübəsini daha da yaxşılaşdırır və qazanmaq şanslarını artırır.

Bonus Şərtləri və İstifadəsi

Casino pinco-da təqdim edilən bonusların hər birinin özünəməxsus şərtləri vardır. Bu şərtlər, bonusun istifadə edilmə müddəti, minimum depozit məbləği, oyunlara töhfə dərəcəsi və digər vacib məlumatları əhatə edir. Oyunçular, bonusu istifadə etməzdən əvvəl, bu şərtləri diqqətlə oxumalıdırlar. Bəzi bonuslar, yalnız müəyyən oyunlarda istifadə edilə bilər. Bonusun istifadəsi ilə bağlı hər hansı bir sualınız varsa, müştəri dəstəyinə müraciət edə bilərsiniz.

  • Xoş gəlim bonusu, yalnız yeni oyunçular üçün nəzərdə tutulmuşdur.
  • Depozit bonusu, depozit etdiyiniz məbləğin müəyyən faizidir.
  • Pulsuz fırlanmalar, slot oyunlarında pulsuz olaraq oyun oynamaq imkanı verir.
  • Bonusun istifadə edilmə müddəti məhduddur.

Bu siyahı, casino pinco platformasında təqdim edilən bonusların əsas xüsusiyyətlərini göstərir. Oyunçular, bu bonuslardan faydalanaraq oyun təcrübəsini daha da yaxşılaşdıra bilər və qazanmaq şanslarını artırabilirler.

Casino Pinco-nun Mobil Uyğunluğu

Casino pinco, mobil cihazlarla tam uyğundur. Platforma, smartfonlar və tabletlər üçün optimizə edilmişdir və oyunçular, istənilən yerdən və istənilən vaxt oyun oynaya bilər. Mobil platforma, desktop versiyası ilə eyni funksiyalara və oyunlara malikdir. Oyunçular, mobil cihazları vasitəsilə hesablarına daxil ola, oyunlara başlaya, bonuslar əldə edə və müştəri dəstəyinə müraciət edə bilər. Mobil uyğunluq, casino pinco-nun oyunçularına daha da rahatlıq və əlçatanlıq təqdim etməsinə imkan verir.

Mobil Proqram Və Brauzer Vasitəsilə Oynamaq

Casino pinco, həm mobil proqram, həm də brauzer vasitəsilə oyun oynamaq imkanı təqdim edir. Mobil proqram, iOS və Android cihazları üçün əldə edilə bilər və daha sürətli və rahat oyun təcrübəsi təqdim edir. Brauzer vasitəsilə oyun oynamaq isə, hər hansı bir mobil cihazda, brauzer vasitəsilə platformaya daxil olmaqla oyun oynamaq imkanı verir. Oyunçular, öz zövqlərinə uyğun olan üsulu seçə bilər və istənilən yerdən oyun oynaya bilər. Mobil proqram və brauzer vasitəsilə oyun oynamaq, casino pinco-nun oyunçularına daha da çox seçim imkanı verir.

  1. Mobil proqramı iOS və Android cihazları üçün əldə edin.
  2. Brauzer vasitəsilə platformaya daxil olun.
  3. Hesabınıza daxil olun və oyunlara başlayın.
  4. Bonusları əldə edin və müştəri dəstəyinə müraciət edin.

Bu addımlar, casino pinco platformasında mobil cihazlar vasitəsilə oyun oynamaq üçün sadə bir rəhbərdir. Oyunçular, bu addımları izləyərək asanlıqla oyun oynaya bilər və oyun təcrübəsindən həzz ala bilər.

Casino Pinco-da Təhlükəsizlik Və Məxfiliyin Qorunması

Casino pinco, oyunçularının təhlükəsizliyinə və məxfiliyinə böyük önəm verir. Platforma, SSL şifrləməsi və digər müasir təhlükəsizlik texnologiyalarından istifadə edir ki, bu da oyunçuların məlumatlarının qorunmasını təmin edir. Şəxsi məlumatlarınız, heç bir üçüncü şəxsə ötürülmür və yalnız platformanın daxili sistemində saxlanılır. Ödəniş sistemləri isə, ən yüksək təhlükəsizlik standartlarına uyğun olaraq işləyir. Casino pinco, oyunçularının etimadını qazanmaq üçün hər cür tədbir görür.

Casino Pinco: Oyun Dünyasında Yeni Bir Səyahət

Casino pinco, oyun həvəskarları üçün ən yaxşı seçimdir. Geniş oyun seçimi, bonuslar, mobil uyğunluq və təhlükəsizlik, bu platformanı oyun dünyasında fərqləndirir. Oyunçular, burada həm əyləncəli, həm də gəlirli oyun təcrübəsi yaşaya bilər. Casino pinco, oyun dünyasında yeni bir səyahətə başlamak üçün ideal bir platformadır. Platforma, daim özünü təkmilləşdirir və oyunçularına ən yaxşı oyun təcrübəsini təqdim etmək üçün çalışır. Bu platforma, oyun dünyasında yeni bir standart yaratmaq üçün hər cür səy göstərir.

Casino pinco, sadəcə bir oyun platforması deyil, həmçinin oyunçular üçün bir sosial məkandır. Oyunçular, burada digər oyunçularla əlaqə saxlayabilir, oyun təcrübələrini paylaşabilir və yeni dostlar əldə edə bilər. Bu platforma, oyunçular üçün bir icma yaratmaq üçün çalışır və oyun dünyasında birgəlik hissini artırmağa çalışır.