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

Post

Verhoog je winkansen significant met kokobet en profiteer van een breed scala aan spannende casinosp

Verhoog je winkansen significant met kokobet en profiteer van een breed scala aan spannende casinospellen en sportweddenschappen. Welkom bij kokobet: Jouw Online Casino Avontuur Het Aanbod van Casinospellen bij kokobet Slots: Een Wereld van Draaiende Rollen Sportweddenschappen: Inzetten op Je Favoriete Teams Bonussen en Promoties bij kokobet Klantenservice en Betalingsmogelijkheden Verhoog je winkansen significant met […]

Verhoog je winkansen significant met kokobet en profiteer van een breed scala aan spannende casinosp Read More »

A Emoção do Jogo Moderno Explore a Vasta Seleção e os Recompensas Diárias do twin casino Online.

A Emoção do Jogo Moderno: Explore a Vasta Seleção e os Recompensas Diárias do twin casino Online. A Evolução dos Casinos Online e o Surgimento do twin casino Online A Vasta Seleção de Jogos Disponíveis no twin casino Online Jogos com Crupiês ao Vivo: Uma Experiência Imersiva no Conforto do Seu Lar Promoções e Bônus

A Emoção do Jogo Moderno Explore a Vasta Seleção e os Recompensas Diárias do twin casino Online. Read More »

Vervul je dromen met flitsende overwinningen funbet casino biedt een spannende spelervaring en wekel

Vervul je dromen met flitsende overwinningen: funbet casino biedt een spannende spelervaring en wekelijkse jackpots voor elke speler. Een Kennismaking met funbet casino: Jouw Gateway naar Spannend Gamedivers De Wereld van Slots: Van Klassiekers tot Innovatieve Videoslots Tafelspellen & Live Casino: Ervaar de Authenticiteit van het Casino Thuis Bonussen en Promoties: Verhoog je Winstkansen bij

Vervul je dromen met flitsende overwinningen funbet casino biedt een spannende spelervaring en wekel Read More »

Wacht Even Voordat Je Inzet Een Eerlijke Funbet casino review met Alle Promoties en Bonusdetails

Wacht Even Voordat Je Inzet: Een Eerlijke Funbet casino review met Alle Promoties en Bonusdetails Het Spelaanbod van Funbet Casino Live Casino Ervaring Virtuele Sporten en Weddenschappen Bonussen en Promoties bij Funbet Casino Inzetvereisten en Voorwaarden Loyaliteitsprogramma en VIP Voordelen Betaalmethoden en Klantenservice bij Funbet Casino Klantenservice Opties Licentie en Veiligheid Wacht Even Voordat Je

Wacht Even Voordat Je Inzet Een Eerlijke Funbet casino review met Alle Promoties en Bonusdetails Read More »

Sabia que 95% dos jogadores encontram a sua sorte com um simples twin casino login e bónus de boas-v

Sabia que 95% dos jogadores encontram a sua sorte com um simples twin casino login e bónus de boas-vindas alucinantes? O Que Torna um Casino Online Atraente? O Processo de Login: Um Guia Passo a Passo Segurança da Conta e Verificação Recuperação de Senha e Suporte Técnico Bônus e Promoções: Maximizando os Seus Ganhos Métodos

Sabia que 95% dos jogadores encontram a sua sorte com um simples twin casino login e bónus de boas-v Read More »

Ontsnappen aan de Realiteit Funbet Verhoogt Je Winstkansen met Spanning en Top Entertainment voor El

Ontsnappen aan de Realiteit: Funbet Verhoogt Je Winstkansen met Spanning en Top Entertainment voor Elke Speler. De Geschiedenis van Online Casino’s De Evolutie van Gokautomaten Verschillende Soorten Online Casino Spellen Roulette Strategieën Blackjack Basisstrategie Bonussen en Promoties bij Online Casino’s Soorten Welkomstbonussen Verantwoordelijk Spelen Ontsnappen aan de Realiteit: Funbet Verhoogt Je Winstkansen met Spanning en

Ontsnappen aan de Realiteit Funbet Verhoogt Je Winstkansen met Spanning en Top Entertainment voor El Read More »

Krijg de adrenaline hoger en win groots met funbet casino, jouw toegang tot spannende spellen en exc

Krijg de adrenaline hoger en win groots met funbet casino, jouw toegang tot spannende spellen en exclusieve acties. Welkom bij de Spannende Wereld van Online Casino’s Het Voordeel van Funbet Casino: Een Overzicht Populaire Spellen bij Funbet Casino Gokkasten: De Klassieker Live Casino: De Sensatie van een Echt Casino Tafelspellen: Strategie en Skill Het Belang

Krijg de adrenaline hoger en win groots met funbet casino, jouw toegang tot spannende spellen en exc Read More »

Poczuj adrenalinę – mostbet to platforma z tysiącami możliwości, gdzie każdy zakład może stać się pr

Poczuj adrenalinę – mostbet to platforma z tysiącami możliwości, gdzie każdy zakład może stać się przepustką do spełnienia marzeń i niezapomnianych wrażeń. Co to jest mostbets? Rodzaje Zakładów Sportowych na mostbets Gry Kasynowe na mostbets Sloty Online Ruletka i Gry Karciane Gry na Żywo Bonusy i Promocje na mostbets Bezpieczeństwo i Obsługa Klienta na mostbets

Poczuj adrenalinę – mostbet to platforma z tysiącami możliwości, gdzie każdy zakład może stać się pr Read More »

Elevate Your Play Experience Thrilling Wins & Exclusive Rewards with Yukon Gold’s Premier Online Col

Elevate Your Play: Experience Thrilling Wins & Exclusive Rewards with Yukon Gold’s Premier Online Collection. Understanding Yukon Gold’s Game Selection Exploring Bonus Offers and Promotions Understanding Wagering Requirements Maximizing Promotion Benefits Ensuring Security and Fair Play Responsible Gambling Measures Elevate Your Play: Experience Thrilling Wins & Exclusive Rewards with Yukon Gold’s Premier Online Collection. The

Elevate Your Play Experience Thrilling Wins & Exclusive Rewards with Yukon Gold’s Premier Online Col Read More »

Poczuj dreszcz emocji graj gdziekolwiek z mostbet aplikacja i wygrywaj w świecie rozrywki online.

Poczuj dreszcz emocji: graj gdziekolwiek z mostbet aplikacja i wygrywaj w świecie rozrywki online. Zalety korzystania z Mostbet Aplikacji Proces instalacji i konfiguracji aplikacji Pierwsze kroki po instalacji Konfiguracja ustawień aplikacji Oferta gier w aplikacji Mostbet Wpłaty i wypłaty w aplikacji Mostbet Obsługa Klienta w Mostbet Aplikacji Poczuj dreszcz emocji: graj gdziekolwiek z mostbet aplikacja

Poczuj dreszcz emocji graj gdziekolwiek z mostbet aplikacja i wygrywaj w świecie rozrywki online. Read More »