/** * 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 onlayn kazino Ozbekistonda jonli kazino imkoniyatlari.4707 – Chambers Of Vikramaditya

Mostbet onlayn kazino Ozbekistonda jonli kazino imkoniyatlari.4707

Mostbet onlayn kazino O‘zbekistonda – jonli kazino imkoniyatlari

Mostbet uz sayti O‘zbekistonning eng yaxshi onlayn kazinolaridan biri hisoblanadi, mostbet o’ynash uchun sizga keng imkoniyatlar taklif qiladi. Bu yerda siz kazino online o‘yinlarning turli xil turlarini topishingiz mumkin, jumladan, mostbet jonli kazino, slot mashinalar, poker va boshqalar.

Mostbet uz kirish orqali siz o‘z hisobingizni ochishingiz va mostbetning barcha imkoniyatlaridan foydalanishingiz mumkin. Saytning foydali interfeysi va yuqori sifatli grafika sizga o‘yin jarayonini yanada qiziqarli qiladi. Shuningdek, mostbet sayti xavfsizlik va ishonchlilikka alohida e’tibor beradi, shuning uchun sizning mablag‘laringiz va shaxsiy ma’lumotlaringiz xavfsiz saqlanadi.

Agar siz kazino online o‘yinlari bilan tanish emassiz, mostbet uz saytida boshlash uchun ideal joy. Saytning ko‘plab o‘yinlari uchun demo versiyalari mavjud, shuning uchun siz ularni bepul sinab ko‘rishingiz mumkin. Mostbet o’ynash uchun sizga kerakli bo‘lgan barcha ma’lumotlar va yordam saytning rasmiy sahifasida joylashtirilgan.

Onlayn kazinoda qatnashish uchun eng yaxshi strategiyalar

Mostbet uz saytida o‘yinlarni o‘ynash uchun birinchi navbatda mostbet uz kirish amalga oshirishingiz kerak. Shundan so‘ng, mostbet o‘ynash uchun sizga qulay bo‘lgan o‘yinlarni tanlashingiz mumkin. Mostbet apk yuklab olish orqali ham o‘yinlarga kirishishingiz mumkin.

Onlayn kazinoda g‘alaba qozonish uchun strategiyalarni bilish juda muhim. Quyidagi strategiyalarni izchil amalga oshirish orqali siz o‘z g‘alabalarizingizni oshirishingiz mumkin:

  • O‘yinlarni tanlashda ehtiyot bo‘ling. Har bir o‘yin uchun alohida strategiya kerak bo‘lishi mumkin.
  • Mostbet uz saytida mavjud bo‘lgan bonuslardan foydalaning. Bu sizning mablag‘laringizni oshirishga yordam beradi.
  • O‘yinlar haqida ma’lumot to‘plang. Har bir o‘yinning qoidalari va imkoniyatlari haqida bilib olganingizda, g‘alaba qozonish ehtimoli ortadi.

Mostbet o‘ynash uchun sizga kerakli bo‘lgan barcha ma’lumotlar mostbet uz saytida mavjud. Shu sayt orqali siz o‘z sevimli o‘yinlaringizni topishingiz va ularni o‘ynashingiz mumkin.

  • Mostbet uz kirish amalga oshirish
  • Mostbet o‘ynash uchun o‘yin tanlash
  • Mostbet apk yuklab olish
  • Onlayn kazinoda qatnashish uchun sizga kerakli bo‘lgan barcha imkoniyatlarni mostbet uz saytida topishingiz mumkin. Shu sayt orqali siz o‘z g‘alabalarizingizni oshirishingiz va o‘yinlardan to‘liq foydalanishingiz mumkin.

    Mostbet jonli kazinosida o‘yinlar va ularning afzalliklari

    Mostbet uz sayti orqali jonli kazinoga kirish uchun mostbet uz kirish tugmasini bosing, keyin mostbet o’ynash imkoniyatlari bilan tanishing. Mostbet jonli kazinosida turli xil o‘yinlar mavjud, jumladan, Blackjack, Ruletka, Baccarat va boshqalar. Mostbet apk orqali o‘yinlarni o‘ynash uchun smartfon yoki planshetdan foydalanishingiz mumkin.

    Mostbet jonli kazinosida o‘yinlar juda ko‘p, shuning uchun har bir o‘yinchi o‘zining sevimli o‘yinini topishi mumkin. Mostbet uz saytida jonli kazino bo‘limi alohida joylashgan, bu yerda siz mostbet o’ynash imkoniyatlari haqida batafsil ma‘lumot olishingiz mumkin.

    Mostbet jonli kazinosida o‘yinlarning afzalliklari

    Mostbet jonli kazinosida o‘yinlar juda real, chunki ular haqiqiy krupiye va boshqa o‘yinchilar ishtirokida o‘tkaziladi. Mostbet uz sayti orqali jonli kazinoga kirish uchun hech qanday maxsus dastur yuklamadingiz, chunki barcha o‘yinlar brauzer orqali o‘ynaladi.

    Onlayn kazinoda moliyaviy amallarni boshqarish va xavfsizlik choralar

    Mostbet uz saytida moliyaviy amallarni boshqarish juda qulay va xavfsiz. Siz mostbet uz kirish orqali o’z hisobingizga kirib, moliyaviy amallarni boshqarishingiz mumkin. Mostbet o’ynash uchun sizning hisobingizda yetarli mablag’ bo’lishi kerak. Mostbet apk yuklab olish orqali ham siz moliyaviy amallarni boshqarishingiz mumkin.

    Kazino online o’yinlari uchun sizning mostbet casino moliyaviy ma’lumotlaringiz xavfsiz saqlanadi. Mostbet uz saytida xavfsizlik choralarini kuchaytirish maqsadida sizning moliyaviy amallaringiz shifrlanadi. Shuningdek, sizning hisobingizga kirish uchun parol va login dan tashqari, boshqa xavfsizlik choralaridan ham foydalaniladi.

    Siz mostbet uz saytida moliyaviy amallarni boshqarishda istalgan paytda yordam olishingiz mumkin. Mostbet uz saytida onlayn qo’llab-quvvat xizmati ishlaydi, sizning barcha savollaringizga javob beradi. Shuningdek, siz mostbet uz saytida moliyaviy amallarni boshqarish bo’yicha ko’rsatma ham topishingiz mumkin.