/** * 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' ) ), ); } } 이상적인 도박 업체 승인하는: 포괄적인 개요 – Chambers Of Vikramaditya

이상적인 도박 업체 승인하는: 포괄적인 개요

넷텔러는 중의 유명한 및 활용되는 결제 방법 중 하나로 온라인 상의 카지노에서 되었다.안전한 및 실용적인 속성을 통해, 넷텔러는, 수많은 도박 업체 플레이어들의 선택이 되었다.이 글에서는, 우리는 승인하는 최고의 온라인 카지노를 발견할 것이며, 저희의 온라인 배팅 경험을 향상시키기 위한 포괄적인 가이드를 제공할 것입니다.

넷텔러는 사용자들이 온라인에서 쉬운 및 안전한 구매를 허락하는 전자지갑 서비스입니다.바로 입금 및 출금을 제공합니다, 온라인 상의 카지노 플레이어들에게 완벽한 선택로 떠오르고 있습니다.더욱이, 넷텔러는 금융 정보를 비밀로 보관함으로써 안전을 강화할 레이어를 추가적으로 제공하여, 사기 행위나 개인 정보 절도의 위험을 줄입니다.

넷텔러 입금을 허용하는 우수한 카지노

여러분이 넷텔러 입금을 허용하는 최고의 인터넷 상의 도박장를 찾고 있으면, 우리는 온라인 명성, 게임 선택지, 이득, 및 클라이언트 지원 서비스를 기초로 상위 대안을 수집한 체크리스트를 제공합니다.이러한 도박 업체는 플레이어들에게 매끄럽고 즐거운 비디오 게임 경험을 제공합니다:

1.도박 업체 콜 1 – 다양한 도박 업체 게임의 다양성을 가진 관대한 이득과, 카지노 사이트 이름 1은 플레이어들에게 뛰어난 게임 경험을 제공합니다.그들은 가능하게 하여, 빠르고 쉬운 거래를 확실히 합니다.

2.온라인 카지노 이름 2 – 슬롯 게임의 포괄적인 모음과 라이브 도박 업체 옵션으로, 도박장 이름 2는 인터넷 도박자들 사이에서 인기 있는 선택입니다.그들은 게이머의 안전과 보안을 중요시하며, 넷텔러 승인하여, 안전하고 보안이 강화된 결제 방법을 제공합니다.

3.도박장 이름 3 – 간단한 시스템과 다양한 테이블 비디오 게임들을 제공하며, 카지노 콜 3는 짜릿하고 몰입감 있는 게임 경험을 확실히 합니다.넷텔러를 허용되는 지불 방법으로, 게이머들은 매끄러운 거래를 즐깁니다.

  • 신속하고 안전한 거래: 넷텔러는 즉시 입금 및 출금을 제공하여, 여러분의 이익을 바로 즐길 수 있도록 합니다.플랫폼의 고급 보안 조치는 당신의 금융 정보가 안전하게 유지되도록|지켜지도록} 보장합니다.
  • 사용 가능성: 넷텔러는 다수의 온라인 카지노에 의해 승인된 플랫폼으로, 게이머들이 자신의 카지노를 간편하게 찾을 수 있도록 합니다.당신은 넷텔러 계정을 빠르게 자금을 충당하고, 선택한 카지노에서 바로 게임을 즐길 수 있습니다.
  • 보너스와 프로모션: 여러 인터넷 도박장들이 넷텔러 입금을 통해하는 플레이어들에게 특별한 보상과 프로모션을 제공합니다.이러한 이득은 다양성 있는 무료 회전 등, 입금 매치까지, 가치를 제공하며.
  • 글로벌 사용 가능성: 넷텔러는} 200개 이상의 지역에서 사용 가능하며, 다양한 금액 단위를 지원하면서, 전 세계에서 플레이어들이 끊김 없는 PC 게임 경험을 즐길 수 있게 합니다.유럽, 아시아, 미주에 있는지 없는지, 넷텔러는 귀하가 편리하게 입금을 하고 출금할 수 있도록 보장합니다.

넷텔러 입금하는 법

넷텔러 충전은 쉬운 프로세스이며 몇 가지 기본적인 절차로 완료될 수 있습니다:

1.넷텔러 계정 등록하기: 넷텔러 웹사이트에 들어가고 kr-dafabet.com 무료 사용자 계정을 등록합니다.필요한 정보를 제공하고 인증 절차를 완료합니다.

2.넷텔러 계정에 자금을 추가하기: 계정이 설정되면, 신용/직불 카드나 금융 기관 송금, 혹은 다른 전자지갑들을 통해 다양한 기술로 자금을 추가하실 수 있습니다.가장 편리한 옵션을 고르하고 안내에 따라 자금을 더하시오.

3.추천 드린 넷텔러 입금을 허용하는 인터넷 카지노 목록을 탐색하며 흥미가 있는 하나를 택하여 가입하십시오.

4.가입 이후, 카지노의 캐셔 페이지로 이동하세요.넷텔러를 선호하는 결제 수단으로 선택하십시오.

5.넷텔러 계정 세부 정보를 제공하여 거래를 허가하세요.예치하고 싶은 양을 넣어서 거래를 확인하십시오.

6.플레이 시작하기: 거래가 완료되면, 자금이 즉각 여러분의 도박장 계정에 적립됩니다.지금부터 비디오 게임과 다양한 게임과 직접 체험해보고, 온라인 베팅 경험을 즐길 수 있습니다.

결론적으로

넷텔러는 의심의 여지 없이 온라인 도박장베팅를 위한 가장 이상적인 정산 방법 중 하나입니다.그것의 안전성, 편리성, 및 넓은 수용성은 세계적인 도박자들의 추천하는 선택입니다.가능하게 하는 추천된 카지노 중 하나를 선택하여, 귀하의 인터넷 도박 경험을 새로운 차원으로 향상시킬 수 있습니다.그래서, 넷텔러 계정 등록하고, 최고의 카지노를 탐색하고, 모험과 게임으로 가득 찬 여정을 시작하세요.

면책 사항: 온라인 베팅은 일부 관할 지역에서 법적 규제가 있을 수 있습니다.항상 여러분의 지역의 법률 및 정책을 참여하기 전에 확인하세요.