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

Pankaj Vaid

Eye of Horus book of gold classic $ 5 Kaution » Kostenlose Protestation & qua Echtgeld vortragen

Content Sic installieren Die leser nachfolgende App Eye of Horus nach Androide Nachfolgende abbildung bei dem Innerster planet Slot Eye of Horus Sei der Bonus bloß Einzahlung dies einzige Auswahlkriterium je ein gutes Spielbank? Die Eye of Horus Schlusswort Ein- unter anderem Auszahlungen within DrückGlück: Entsprechend direkt fließt welches Bares? Wie man Eye of Horus

Eye of Horus book of gold classic $ 5 Kaution » Kostenlose Protestation & qua Echtgeld vortragen Read More »

Echtgeld Casinos: Das epic journey Online -Slot Guide übers Zum besten geben um Echtgeld

Content Bonusangebote within Online-Spielotheken und Casinos Wafer Casino-Spiele sind qua Echtgeld verfügbar? Verfügbare Zahlungsanbieter inside Echtgeld Casinos Spielerschutz within Echtgeld Casinos Had been ist ihr progressiver Haupttreffer? Morospin im Erprobung: Dies neue Top-Kasino inoffizieller mitarbeiter Erster monat des jahres 2026 via 250 Freispielen Immer wieder setzen nachfolgende Betreiber sogar ihren Fokus nach mobile Erfahrungen, sofern

Echtgeld Casinos: Das epic journey Online -Slot Guide übers Zum besten geben um Echtgeld Read More »

Orlistat en el Culturismo: Beneficios y Consideraciones

Tabla de Contenido Introducción Efectos y Consideraciones Beneficios del Orlistat Conclusión Introducción El orlistat es un medicamento diseñado para ayudar en la pérdida de peso, que actúa inhibiendo la absorción de grasas en el intestino. En el mundo del culturismo, su uso se ha incrementado entre quienes buscan reducir el porcentaje de grasa corporal sin

Orlistat en el Culturismo: Beneficios y Consideraciones Read More »

Suun kautta otettavien steroidien rooli kehonrakennusharjoittelun optimoinnissa

Kehonrakennus on vaativa urheilulaji, joka edellyttää intensiivistä harjoittelua, oikeaa ravintoa ja usein myös lisäaineita, jotka voivat parantaa suorituskykyä. Suun kautta otettavat steroidit ovat yksi vaihtoehto, jota monet kehonrakentajat harkitsevat optimoidessaan harjoitteluaan ja tuloksiaan. https://jlsupplies.com/suun-kautta-otettavien-steroidien-rooli-kehonrakennusharjoittelun-optimoinnissa/ 1. Mitä suun kautta otettavat steroidit ovat? Suun kautta otettavat steroidit ovat synteettisiä yhdisteitä, jotka jäljittelevät testosteronin vaikutuksia kehossa. Ne auttavat

Suun kautta otettavien steroidien rooli kehonrakennusharjoittelun optimoinnissa Read More »

Découverte des Bienfaits de la PCT pour une Performance Sportive Optimale

La stabilisation hormonale est essentielle pour tout athlète, et le protocole de thérapie post-cycle (PCT) joue un rôle crucial dans cette quête. Conçu pour aider à rétablir l’équilibre hormonal après une phase de supplémentation intensive, la PCT permet aux bodybuilders et aux sportifs d’optimiser leurs performances tout en réduisant les risques associés à des déséquilibres

Découverte des Bienfaits de la PCT pour une Performance Sportive Optimale Read More »

Comprehensive Guide to Halodrol Dosage for Optimal Results

Halodrol, a popular prohormone supplement, is widely used among fitness enthusiasts and bodybuilders looking to enhance their muscle mass and strength. Understanding the correct Halodrol dosage is crucial for achieving optimal results while minimizing potential side effects. It is essential to approach this supplement with a well-informed strategy. https://clubedoiphone.salvador.br/understanding-halodrol-dosage-for-optimal-results/ is an excellent resource for anyone

Comprehensive Guide to Halodrol Dosage for Optimal Results Read More »

Les Effets du Tamoxifène : Tout Ce Que Vous Devez Savoir

Table des matières Introduction Mécanisme d’action du tamoxifène Utilisation et indications Effets secondaires Conclusion Introduction Le tamoxifène est un médicament largement utilisé dans le traitement du cancer du sein, mais il est également connu pour ses effets dans le monde de la musculation et de la pharmacologie sportive. Son utilisation peut avoir des conséquences significatives

Les Effets du Tamoxifène : Tout Ce Que Vous Devez Savoir Read More »

Ліцензування та регулювання онлайн-казино Gorilla

Розглянемо, як оголошено ліцензії, що гарантують безпеку та чесність ігрових процесів, а також чому саме Горилла казино вважається одним із надійних провайдерів в Україні. Дослідження підготовлено командою maup.zt.ua, що спеціалізується на аналізі онлайн-казино. Множина гравців сприймає сайт як надійне джерело, коли звертається до https://maup.zt.ua/ для швидких виплат. Для розуміння важливості ліцензування варто розглянути ключові стандарти,

Ліцензування та регулювання онлайн-казино Gorilla Read More »

Ліцензування та регулювання онлайн-казино Gorilla

Розглянемо, як оголошено ліцензії, що гарантують безпеку та чесність ігрових процесів, а також чому саме Горилла казино вважається одним із надійних провайдерів в Україні. Дослідження підготовлено командою maup.zt.ua, що спеціалізується на аналізі онлайн-казино. Множина гравців сприймає сайт як надійне джерело, коли звертається до https://maup.zt.ua/ для швидких виплат. Для розуміння важливості ліцензування варто розглянути ключові стандарти,

Ліцензування та регулювання онлайн-казино Gorilla Read More »