/** * 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' ) ), ); } } Casino Yep Polska Mobilna wersja platformy i gra na smartfonach.1923 (2) – Chambers Of Vikramaditya

Casino Yep Polska Mobilna wersja platformy i gra na smartfonach.1923 (2)

Casino Yep Polska – Mobilna wersja platformy i gra na smartfonach

Jeśli szukasz yep casino sposobu, aby grać w kasyno online z komfortu swojego domu, Casino Yep Polska jest idealnym rozwiązaniem. Warto zatem poznać mobilną wersję platformy, aby móc grać na swoim smartfonie.

Casino Yep Polska to popularna platforma kasynowa, która oferuje szeroki wybór gier kasynowych, w tym rulet, blackjacka, automatów i wiele innych. Aby móc grać na swoim smartfonie, należy pobrać mobilną wersję platformy, która jest dostępna dla użytkowników z Polski.

Mobilna wersja Casino Yep Polska jest dostępna dla użytkowników z różnych systemów operacyjnych, w tym Android i iOS. Aby móc grać, należy pobrać aplikację mobilną z platformy, a następnie zalogować się przy użyciu swojego loginu i hasła.

Casino Yep Polska oferuje wiele korzyści, w tym możliwość gry w różne gry kasynowe, bonusy i promocje, a także możliwość wypłaty wygranych. Aby móc korzystać z tych korzyści, należy pobrać mobilną wersję platformy i zalogować się.

Jeśli szukasz sposobu, aby grać w kasyno online z komfortu swojego domu, Casino Yep Polska jest idealnym rozwiązaniem. Mobilna wersja platformy pozwoli ci grać na swoim smartfonie, a także korzystać z różnych korzyści, które oferuje.

Warto zatem pobrać mobilną wersję Casino Yep Polska i zalogować się, aby móc grać w swoim stylu i korzystać z różnych korzyści, które oferuje.

Zaloguj się teraz i zacznij grać!

Pamiętaj, aby pobrać mobilną wersję Casino Yep Polska i zalogować się, aby móc grać w swoim stylu i korzystać z różnych korzyści, które oferuje.

Nowa możliwość hazardu na smartfonach

Jeśli szukasz nowych sposobów naładowania swojego czasu, to casino Yep Polska jest idealnym rozwiązaniem. Dziś, możesz grać w kasyno online na swoim smartfonie, korzystając z mobilnej wersji platformy YepCasino. To oznacza, że możesz korzystać z szerokiej gamy gier kasynowych, w tym ruletka, blackjack, video poker i wiele innych, w dowolnym miejscu i w dowolnym czasie.

Przydatne informacje przed startem

Przed rozpoczęciem gry, warto wiedzieć, że YepCasino oferuje swoim graczy wiele korzyści, w tym bezpieczeństwo transakcji, szybkość wypłat i szeroki wybór gier. Dodatkowo, platforma jest dostępna w języku polskim, co ułatwia korzystanie z niej dla polskich graczy. Aby zacząć, musisz tylko zalogować się na swoje konto, wybrać grę, którą chcesz zagrać, i rozpocząć hazard.

Jeśli jesteś nowym użytkownikiem, to warto wiedzieć, że YepCasino oferuje swoim nowym graczom specjalne promocje i bonusy, które mogą pomóc w rozpoczęciu gry. Dodatkowo, platforma oferuje swoim graczom wsparcie 24/7, co ułatwia rozwiązywanie problemów, które mogą się pojawić podczas gry.

Wygodne korzystanie z Casino Yep Polska

Jeśli szukasz wygodnego korzystania z Casino Yep Polska, to jesteś w odpowiednim miejscu. W naszym artykule przedstawiamy wskazówki, które pomóc Ci w pełni wykorzystać potencjał tej mobilnej wersji platformy.

Wygodne korzystanie z Casino Yep Polska – 5 wskazówek

1. Zaloguj się do swojego konta. Aby rozpocząć korzystanie z Casino Yep Polska, musisz zalogować się do swojego konta. Wprowadź swoje dane logowania, a następnie kliknij na “Zaloguj się”.

  • Upewnij się, że Twoje dane logowania są poprawne.
  • Jeśli masz problemy z logowaniem, skontaktuj się z naszymi operatorami.

2. Wybierz swoją ulubioną grę. Casino Yep Polska oferuje szeroki wybór gier, aby każdy mógł znaleźć coś, co mu się podoba. Wybierz swoją ulubioną grę i zacznij grać.

  • Wybierz grę, która pasuje do Twoich preferencji.
  • Jeśli masz problem z wyborem gry, skontaktuj się z naszymi operatorami.
  • 3. Użyj funkcji szukania. Casino Yep Polska oferuje funkcję szukania, która pozwoli Ci szybko znaleźć Twoją ulubioną grę. Użyj tej funkcji, aby szybko znaleźć grę, którą szukasz.

    • Użyj funkcji szukania, aby szybko znaleźć Twoją ulubioną grę.
    • Jeśli masz problem z korzystaniem z funkcji szukania, skontaktuj się z naszymi operatorami.

    4. Użyj funkcji filtrowania. Casino Yep Polska oferuje funkcję filtrowania, która pozwoli Ci szybko znaleźć Twoją ulubioną grę. Użyj tej funkcji, aby szybko znaleźć grę, którą szukasz.

  • Użyj funkcji filtrowania, aby szybko znaleźć Twoją ulubioną grę.
  • Jeśli masz problem z korzystaniem z funkcji filtrowania, skontaktuj się z naszymi operatorami.
  • 5. Skontaktuj się z naszymi operatorami. Jeśli masz problem z korzystaniem z Casino Yep Polska, skontaktuj się z naszymi operatorami. Oni będą mogli pomóc Ci w rozwiązaniu Twojego problemu.

    Wygodne korzystanie z Casino Yep Polska to nie tylko korzystanie z gier, ale także korzystanie z różnych funkcji, które platforma oferuje. Pamiętaj, aby korzystać z funkcji szukania i filtrowania, aby szybko znaleźć Twoją ulubioną grę. Jeśli masz problem z korzystaniem z Casino Yep Polska, skontaktuj się z naszymi operatorami.