/** * 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' ) ), ); } } Olimp Casino Azerbaijan yeni oyunular n onlayn bldi.829 – Chambers Of Vikramaditya

Olimp Casino Azerbaijan yeni oyunular n onlayn bldi.829

Olimp Casino Azerbaijan – yeni oyunçular üçün onlayn bələdçi

▶️ OYNA

Содержимое

  • Olimp Casino-nun təklif etdiyi oyun növləri

  • Olimp Casino-nun ən məşhur oyunları

  • Olimp Casino-da qeydiyyatdan keçmək və oyunlara başlamaq

  • Olimp Casino-nun təklif etdiyi bonus və kampaniyalar

Olimp Casino Azerbaijan yeni oyunçulara onlayn kazinoda uğur qazanmaq üçün bir sıra məsləhətlər təklif edir. olymp casino online oyunçulara müxtəlif oyun variantları və bonuslar təklif edir. Olimp kazino Azərbaycanın ən məşhur onlayn kazinolarından biridir və oyunçulara yüksək keyfiyyətli xidmət təklif edir.

Olimp Casino Azerbaijan oyunçulara olymp casino oyunlarının geniş spektrini təklif edir. Bu kazinoda oyunçular slot maşınları, poker, rulet və başqa oyunları oynaya bilərlər. Olymp Casino online oyunçulara həmçinin bonuslar və promosyonlar təklif edir ki, bu da onların qazancını artırmağa kömək edir.

Olimp kazino Azərbaycanın ən etibarlı onlayn kazinolarından biridir. Bu kazinoda oyunçuların məlumatları qorunur və oyunlar ədalətli keçirilir. Olimp Casino Azerbaijan oyunçulara yüksək keyfiyyətli xidmət təklif edir və onların suallarını cavablandırmaq üçün daima hazır olur.

Olimp Casino-nun təklif etdiyi oyun növləri

Olimp kazino sizə müxtəlif oyun növləri təklif edir. Olimp casino Azerbaijan sizə ən yaxşı onlayn oyun təcrübəsini təqdim edir. Olymp casino online oyunlar arasında slot maşınları, poker, rulet və başqa kazino oyunları var. Olimp kazino sizə həmçinin canlı dealerlər də təklif edir.

Olimp Casino oyunsevərlərə ən yaxşı təcrübəni təqdim etməyə çalışır. Onlayn kazino oyunlarından əlavə, olimp kazino sizə həmçinin bonuslar və xüsusi təkliflər də təklif edir. Siz olimp casino azerbaijan saytına daxil olaraq ən yaxşı onlayn oyun təcrübəsini əldə edə bilərsiniz.

Olimp Casino-nun ən məşhur oyunları

Olimp kazino-nun ən məşhur oyunları arasında slot maşınları, poker, rulet və başqa kazino oyunları var. Siz olymp casino online saytına daxil olaraq bu oyunları oynaya bilərsiniz. Olimp kazino sizə həmçinin canlı dealerlər də təklif edir, bu da sizə daha real oyun təcrübəsi təqdim edir.

Olimp Casino-da qeydiyyatdan keçmək və oyunlara başlamaq

Olimp Casino Azerbaijan-ın rəsmi saytına daxil olaraq, “Qeydiyyat” düyməsini basın və tələb olunan məlumatları daxil edin. Olimp kazino-da qeydiyyatdan keçdikdən sonra, sizə müxtəlif oyunlar, o cümlədən slot maşınları, kart oyunları və canlı kazino oyunları mövcuddur. Olimp casino-da oyunlara başlamaq üçün, sizə əvvəlcə hesabınızı aktivləşdirmək və pul köçürmək lazımdır.

Olimp Casino-da hesabınızı aktivləşdirdikdən sonra, sizə müxtəlif ödəniş üsulları mövcuddur. Ödəniş üsullarını seçərək, siz hesabınıza pul köçürə bilərsiniz. Olymp casino-da pul köçürmək üçün, sizə əvvəlcə ödəniş üsulunu seçmək və sonra pul miqdarını daxil etmək lazımdır.

Olimp Casino Azerbaijan-da oyunlara başlamaq üçün, sizə əvvəlcə oyunu seçmək lazımdır. Olimp kazino-da müxtəlif oyunlar mövcuddur, onlardan birini seçərək, siz oyunu başlamağa başlaya bilərsiniz. Olimp casino-da oyunlar, sizə müxtəlif qazanma şansları təqdim edir, onlardan birini seçərək, siz qazanmağa başlaya bilərsiniz.

Olimp Casino-nun təklif etdiyi bonus və kampaniyalar

Olimp Casino online oyunsevərlərə müxtəlif bonus və kampaniyalar təklif edir. Olimp kazino yeni oyunçulara xüsusi bonuslar verərək, onların oyun təcrübəsini daha da maraqlı və qazanclı edir. Olymp casino-da qeydiyyatdan keçdikdən sonra, siz dərhal bonus almağa başlaya bilərsiniz. Olimp casino-nun təklif etdiyi bonuslar arasında qeydiyyat bonusu, dépozit bonusu və s. var.

Olimp kazino-da həmçinin müntəzəm olaraq müxtəlif kampaniyalar keçirilir. Bu kampaniyalar çərçivəsində, siz daha çox qazanmaq və oyun təcrübənizi daha da yaxşılaşdırmaq üçün fürsət əldə edə bilərsiniz. Olymp casino online-dan istifadə edərkən, siz həmçinin xüsusi təkliflər və endirimlərdən də yararlanacaqsınız.

Olimp casino-nun bonus və kampaniyalarından yararlanarkən, sizə ən əsas şey, oyunun qaydalarını və şərtlərini diqqətlə oxumaq və onlara əməl etməkdir. Beləliklə, siz Olimp kazino-da daha effektiv və qazanclı oyun təcrübəsi keçirə bilərsiniz.