/** * 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' ) ), ); } } Sportaza Casino – Chambers Of Vikramaditya

Sportaza Casino

Η Sportaza Casino είναι ένας από τους πιο δημοφιλείς χώρους στο διαδίκτιο, όπου οι ερασιτέχνες και οι επαγγελματίες παίκτες μπορούν να επικεντρωθούν στην αγαπημένη τουthemα: το πόκερ. Με μια γκάμα από εξαιρετικά σλότ με διαφορετικές θεματολογίες και gameplay, η Sportaza Casino προσφέρει στους παίκτες τις ευκαιρίες για επιτυχία και διασκέδαση.

Θέμα και Σχεδιασμός

Το Sportaza Casino έχει μια στοιχειοθετημένη οπτική Sportaza για τους σλότ που του ανήκουν. Οι εικόνες, οι χρωματισμοί και το συνολικό περιβάλλον είναι σχεδιασμένα για να σας προσφέρουν την καλύτερη εμπειρία. Χρησιμοποιούνται ζωντανές φόρμουλες, πόντοι και κοστούμι, δημιουργώντας ένα περιβάλλον που μοιάζει πραγματικά με το πόκερ.

Σμβολισμός

Οι συμβόλους στους σλότ της Sportaza Casino είναι σχεδιασμένοι για να αναπαρασταθούν στην θεματολογία του πόκερ. Βλέπετε πόντοι, φόρμουλες και καζίνο στοιχεία που καθιστά την εμπειρία ακόμα πιο αληθινή.

Δικαιώματα Οι πληρωμές των σλότ της Sportaza Casino είναι ευμεγέθεις. Το μεγαλύτερο δικαίωμα προσφέρει μια τεράστια ποσότητα σε πραγματικές χρήσεις, κάνοντας τα σλοτάρα να αισθάνουνται ευεργετέυματα.

Σχάρες

Οι σφάλμαι οι σχαρές στοποθετεί ο καθένας με τις περισσότερες ευκαιρίες για την ανακάλυψη της θηλιάς του. Ωστόσο, η Sportaza Casino προσφέρει μια εξαιρετική διαδραστικότητα στα βίντεο παιχνιδια.

Παίξιμο με Χωρίς

Στη Sportaza Casino, οι παίκτες έχουν τη δυνατότητα να επιλέξουν μεταξύ δύο τύπων παιγνίων: με χρέωση και χωρίς. Με την πρώτη μέθοδο, οι παίκτες μπορούν να επικεντρωθούν στην διασκέδαση. Σε αντίθεση, η δεύτερη συνήθως προσφέρει μεγαλύτερες κερδώσεις.

Τυχαίες Ροές

Η Sportaza Casino προσφέρει ρότους με μέγιστη κινητικότητα στα σλότ του. Οι παίκτες μπορούν να επιλέξουν την ταχύτητα που τους ταιριάζει, δίνοντας τη δυνατότητα για μια πολύ καλύτερη εμπειρία.

Απαιτούμενη Ροή

Η Sportaza Casino προσφέρει ρότους με μέγιστη κινητικότητα. Οι παίκτες μπορούν να επιλέξουν την ταχύτητα που τους ταιριάζει, δίνοντας τη δυνατότητα για μια πολύ καλύτερη εμπειρία.

Βολτιλότητα

Η Sportaza Casino προσφέρει ένα φάσμα ροών που διανέμονται σε κάθε σλότ. Οι παίκτες μπορούν να επιλέξουν την ταχύτητα που τους ταιριάζει, δίνοντας τη δυνατότητα για μια πολύ καλύτερη εμπειρία.

Παγές

Οι ποσοστοί των ζώνων στοποθετεί ο καθένας με τις περισσότερες ευκαιρίες. Ωστόσο, η Sportaza Casino προσφέρει ρότους και πλήρους κίνηση στα σλότ του για μια εξαιρετική εμπειρία.

Εύκολη Διασκέδαση

Η Sportaza Casino είναι σχεδιασμένη να σας προσφέρει την ευκολότερη διασκεδάσει. Με ένα ολόκληρο φάσμα παιχνιδιών και ροών, οι παίκτες μπορούν να επιλέξουν με ποιον τρόπο θέλουν να αγωνιστούν.

Απαιτήσεις

Η Sportaza Casino είναι προσβάσιμη από τυχόν ταμπλέτα κινητών συσκευών ή υπολογιστές για την προστασία της οθόνη. Ως εκ τούτου, η Sportaza Casino θα σας επαναλάβει όπου κι αν βρισκόσασταν.

Οφιοι

Η Sportаза Casino έχει μια ευρεία γκάμα από συνεργαζόμενες ταμειακές κατηγορίες. Οι παίκτες μπορούν να επιλέξουν την οποία τους ταιριάζει, κάνοντας τον ολόκληρο διαδικασία σλοτάρα πολύ απλούστευση.

Μέγιστη Κίνηση

Η Sportaza Casino προσφέρει ροούς με μέγιστη ταχύτητα. Οι παίκτες μπορούν να επιλέξουν την ταχύτητα που τους ταιριάζει, δίνοντας τη δυνατότητα για μια πολύ καλύτερη εμπειρία.

Χαρακτηριστικά

Η Sportaza Casino προσφέρει ολόκληρη σειρά από χαρακτηριστικά που έχουν ως στόχο να σας βοηθήσουν και να κάνουν την εμπειρία ακόμα πιο ευχάριστη. Μπορείτε να εξερευνήσετε τα βιντεοπαιχνίδια, τα εικονικά αθλήματα, τους κοινόχρηστους χώρους, τον στοίχο, και τα διαδραστικά παιχνίδια.

Καταγγελία

Η Sportaza Casino προσφέρει ευρεία γκάμα από σλοτάρα που μπορούν να επιλέξουν ανάλογα με τις προτιμήσεις τους. Μπορείτε να ανακαλύψετε την ποικιλία των θηλιάς και το καζίνο που σας απομένει.

Ιστοσελίδα

Η Sportaza Casino διαθέτει μια ολόκληρη ιστοσελίδα στο διαδίκτιο. Οι παίκτες μπορούν να πλοηγηθούν με ευκολίας στην ιστοσελίδα και να επιλέξουν την παιχνίδια που τους ταιριάζει.

Κάποιες Συστάσεις

Η Sportaza Casino προσφέρει πολλές συμβουλές για τα σλότ, καθιστώντας έτσι τη διαδικασία πιο εύκολη. Μπορείτε να ανακαλύψετε πώς μπορούν οι παίκτες να εντοπίσουν τους στόχους τους και να αποκτούν επιρρέση στη διαιτολόγηση.

Επαγγελματική Στήριξη

Η Sportaza Casino προσφέρει εξειδικευμένη βοήθεια σε απασχολούντα παίκτες. Μπορείτε να επικοινωνείτε με τους συνεργαζόμενους ομιλητές, για να σας ενισχύσουν και να παρέχουν μια άριστη υπηρεσία.

Γονεικότητα

Η Sportaza Casino είναι πλήρως συναγνώμητος σε όλες τις ηλικίες. Ωστόσο, το καζίνο συνίσταται στους εφήβους και μεγαλυτέρων ηλικίας για να ανακαλύψουν τους σλοτάρα.

Παίκτες

Η Sportaza Casino είναι προσβάσιμη από όσους έχουν τα απαιτούμενα προτέρηματα. Οι παίκτες μπορούν να επιλέξουν τις χειρονομίες που θέλουν, για την ανακάλυψη των θηλιάς τους.

Γρήγορα Παιχνίδια

Η Sportaza Casino είναι σήμερα απορρέξη του αντικριτικού πεδίου. Μπορείτε να ανακαλύψετε και να παίξετε τα βιντεοπαιχνίδια από οποιοδήποτε σημείο του κόσμου.

Γρήγορα Δικτυακό

Η Sportaza Casino είναι σήμερα απορρέξη του αντικριτικού πεδίου. Μπορείτε να ανακαλύψετε και να παίξετε τα βιντεοπαιχνίδια από οποιοδήποτε σημείο του κόσμου.

Σύντομη Ανάλυση

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Ποικιλία

Η Sportaza Casino είναι ένα από τα πιο πλήρη καζίνο στο διαδίκτιο. Μπορείτε να ανακαλύψετε πολλές φόρουλες, κοστούμι και αλλαγή προτίμησης στις επιλογές των σλοτάρα.

Προσωπική Χρονιά

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Πολλά Σύνθηματα

Η Sportaza Casino είναι ένα από τα πιο πλήρη καζίνο στο διαδίκτιο. Μπορείτε να ανακαλύψετε πολλές φόρουλες, κοστούμι και αλλαγή προτίμησης στις επιλογές των σλοτάρα.

Δικτυακό

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Σχέδιο

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Χρονιά

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Φίλτρα

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

Κατηγορία

Η Sportaza Casino είναι μια ολόκληρη πυλώνη με αντικριτικός που προσφέρει σλοτάρα, θηλιάς και άλλα παιχνίδια. Είναι σχεδιασμένη για να σας απομνημονοήσει την εμπειρία σας.

**Αντι