/** * 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' ) ), ); } } Πιο Κορυφαία Καζίνο Αποδεχόμενα Neteller: Ένας Περιεκτικός Οδηγός – Chambers Of Vikramaditya

Πιο Κορυφαία Καζίνο Αποδεχόμενα Neteller: Ένας Περιεκτικός Οδηγός

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

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

Γιατί να επιλέξετε το Neteller;

Το Neteller προμηθεύει μια μεγάλη γκάμα από οφέλη που το καθιστούν ελκυστική επιλογή συναλλαγής για στο Διαδίκτυο παίκτες βιντεοπαιχνιδιών του παιγνιομηχανών.Εδώ παρατίθενται ορισμένοι από κάποιοι από τους λόγους για τους οποίους πρέπει να σκεφτείτε τη χρήση του Neteller:

1.Ασφάλεια και Ασφάλεια: Η Neteller δίνει προτεραιότητα στην ασφάλεια των χρηστών της προσωπικών και οικονομικών πληροφοριών.Χρησιμοποιούν ανθεκτική ασφάλιση τεχνολογία καινοτομίας για να εγγυηθούν ότι όλες οι αγορές είναι ασφαλισμένες από απάτες και μη εξουσιοδοτημένη πρόσβαση.

2.Ταχεία και Άνετη: Με το Neteller, οι καταθέσεις και οι αναλήψεις επεξεργάζονται γρήγορα, επιτρέποντας στους παίκτες βιντεοπαιχνιδιών να έχουν εύκολη πρόσβαση στα κεφάλαιά τους.Επιπλέον, το Neteller υποστηρίζει πολλαπλά χρήματα, καθιστώντας το άνετη επιλογή για παίκτες βιντεοπαιχνιδιών από διαφορετικά μέρη του κόσμου.

3.Ευρέως Αποδεκτό: Το Neteller αποδέχεται από έναν πολλούς ηλεκτρονικών παιγνιομηχανών, καθιστώντας πολύ εύκολο για τους παίκτες να εντοπίσουν ένα αξιόπιστο στοιχηματικό κατάστημα που υποστηρίζει αυτή τη μέθοδος συναλλαγής.

Πιο Κορυφαία Ιστότοποι Καζίνο Εγκρίνοντα το Neteller

Τώρα που έχουμε κατανοήσει τα πλεονεκτήματα της χρήσης του Neteller, ας ρίξουμε μια ματιά σε ορισμένα από τα πολύ καλά διαδικτυακά καζίνο που δέχονται αυτή τη μέθοδος εξόφλησης:

  • Παιγνιομηχανές Α: Το Στοιχηματικό κατάστημα Α είναι ένα γνωστό διαδικτυακό καζίνο αναγνωρισμένο για την μεγάλη επιλογή παιχνιδιών και τα ελκυστικά κέρδη.Αυτοί δέχονται το Neteller, επιτρέποντας στους παίκτες να κάνουν ομαλές συναλλαγές ενώ απολαμβάνουν τα προτιμώμενα παιχνίδια.
  • Στοιχηματικό κατάστημα Β: Με την ομαλή σχεδίαση και ευκολονόητο διασύνδεση χρήστη, το Παιγνιομηχανές Β παρέχει μια εξαιρετική εμπειρία παιχνιδιού.Επίσης υποστηρίζουν το Neteller, καθιστώντας πολύ εύκολο για τους παίκτες βιντεοπαιχνιδιών να διαχειρίζονται τα κεφάλαιά τους.
  • Στοιχηματικό κατάστημα C: Το Καζίνο C ξεχωρίζει για την εντυπωσιακή συλλογή κουλοχέρηδων και επιλογών ζωντανών εμπόρων.Με την έγκριση του Neteller, εγγυώνται ότι οι παίκτες μπορούν να απολαύσουν μια εύκολη εμπειρία παιχνιδιού.

Αυτά είναι απλά μερικά παραδείγματα από αξιόπιστα στο Διαδίκτυο στοιχηματικά καταστήματα που εγκρίνουν το Neteller.Είναι απαραίτητο να να θυμόμαστε ότι η λίστα δεν είναι εξαντλητική, και υπάρχουν πολλά διάφορα άλλα καζίνο που επίσης υποστηρίζουν αυτή τη μέθοδος συναλλαγής.Όταν επιλέγετε ένα στο Διαδίκτυο στοιχηματικό κατάστημα, πάντα να βεβαιώνεστε ότι είναι διαπιστευμένο, αξιόπιστο και παρέχει μια ευρεία σειρά παιχνιδιών που ταιριάζουν στις προτιμήσεις σας.

Πώς να Καταθέσετε και να Αναλάβετε με το Neteller

Χρησιμοποιώντας το Neteller για συναλλαγές στοιχηματικών καταστημάτων είναι απλό.Εδώ παρατίθεται ένα βήμα προς βήμα οδηγία για το πώς να καταθέσετε και να αναλάβετε κεφάλαια χρησιμοποιώντας το Neteller:

  • Βήμα 1: Εγγραφείτε για έναν λογαριασμό Neteller αν δεν έχετε ήδη έναν.Αυτό μπορεί να γίνει επισκεπτόμενοι την ιστοσελίδα του Neteller και ολοκληρώνοντας τη διαδικασία εγγραφής.
  • Βήμα 2: Μόλις έχετε τον λογαριασμό σας στο Neteller, μεταβείτε στην ενότητα του ταμείου του επιλεγμένου ηλεκτρονικού ιστότοπου καζίνο.
  • Βήμα 3: Επιλέξτε το Neteller ως την προτιμώμενη μέθοδο εξόφλησης και εισάγετε τις πληροφορίες του λογαριασμού σας.
  • Συμβουλή 4: Καθορίστε το ποσό που επιθυμείτε να καταθέσετε και επιβεβαιώστε τη αγορά.
  • Συμβουλή 5: Για αναλήψεις, κατευθυνθείτε στην ενότητα ταμείου του στοιχηματικού καταστήματος και επιλέξτε το Neteller ως την μέθοδο ανάληψης.Εισάγετε το ποσό που θέλετε να αναλάβετε και επαληθεύστε τη αγορά.

Συμπέρασμα

Το Neteller είναι μια ασφαλής και άνετη μέθοδος συναλλαγής που έχει πραγματικά αποκτήσει δημοτικότητα μεταξύ των στο Διαδίκτυο παικτών καζίνο.Η ευρεία έγκρισή του και η απλότητα της χρήσης του το καθιστούν μια εξαιρετική επιλογή για εκείνους που επιθυμούν καταμετρώνται σε διαδικτυακό τζόγο.Θυμηθείτε να επιλέξετε ένα αξιόπιστο καζίνο που υποστηρίζει το Neteller για να βεβαιώσετε μια ασφαλή και απολαυστική εμπειρία παιχνιδιού.Ωραία παιχνιδιού!

Εμείς ελπίζουμε αυτό το δημοσίευμα έχει δώσει σας με πολύτιμη πληροφορία σχετικά με τα τα πιο αποτελεσματικά ιστόπους καζίνο https://x3betgr.gr/ εγκρινόμενα το Neteller.Με το κατάλληλο παιγνιομηχανή και μέθοδο συναλλαγής, μπορείτε να βελτιώσετε τη ηλεκτρονική εμπειρία σας στο παιχνίδι και να να απολαμβάνετε απρόσκοπτες συναλλαγές.Καλή επιτυχία!