/** * 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' ) ), ); } } Mostbet com.1125 – Chambers Of Vikramaditya

Mostbet com.1125

Mostbet com

Are you ready to take your online gaming experience to the next level? Look no further than mostbet , the premier online gaming platform that offers a wide range of exciting games and features. With Mostbet, you can enjoy a seamless and secure gaming experience, backed by a team of experts who are dedicated to providing the best possible service.

Mostbet is more than just a gaming platform – it’s a community of like-minded individuals who share a passion for online gaming. With a user-friendly interface and a vast array of games to choose from, Mostbet is the perfect destination for anyone looking to indulge in some online fun. Whether you’re a seasoned pro or a newcomer to the world of online gaming, Mostbet has something for everyone.

But what really sets Mostbet apart is its commitment to providing a safe and secure gaming environment. With advanced security measures in place, you can rest assured that your personal and financial information is protected at all times. And with a team of experts on hand to help with any issues that may arise, you can focus on what really matters – having fun and enjoying the games.

So why choose Mostbet? For starters, the platform offers a wide range of games, including sports, casino, and live dealer options. You can also enjoy a range of promotions and bonuses, including welcome offers, loyalty rewards, and more. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet in no time.

But don’t just take our word for it – try Mostbet out for yourself and see why it’s become the go-to destination for online gaming enthusiasts. With a range of payment options available, including credit cards, e-wallets, and more, you can get started with Mostbet today and start enjoying the ultimate online gaming experience.

Mostbet Online – the perfect destination for anyone looking to indulge in some online fun. With a range of games to choose from, including sports, casino, and live dealer options, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet in no time.

Mostbet APK – the perfect way to take your online gaming experience on the go. With a range of games to choose from, including sports, casino, and live dealer options, you can enjoy the ultimate online gaming experience wherever you are. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet APK in no time.

Mostbet Pakistan – the perfect destination for anyone looking to indulge in some online fun in Pakistan. With a range of games to choose from, including sports, casino, and live dealer options, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet Pakistan in no time.

Mostbet Login – the perfect way to get started with Mostbet. With a range of games to choose from, including sports, casino, and live dealer options, you can enjoy the ultimate online gaming experience. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet Login in no time.

Mostbet App – the perfect way to take your online gaming experience on the go. With a range of games to choose from, including sports, casino, and live dealer options, you can enjoy the ultimate online gaming experience wherever you are. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet App in no time.

Mostbet Casino – the perfect destination for anyone looking to indulge in some online casino action. With a range of games to choose from, including slots, table games, and more, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet Casino in no time.

Mostbet Download – the perfect way to get started with Mostbet. With a range of games to choose from, including sports, casino, and live dealer options, you can enjoy the ultimate online gaming experience. And with a user-friendly interface that’s easy to navigate, you can get started with Mostbet Download in no time.

Baji Sports Live – the perfect destination for anyone looking to indulge in some live sports action. With a range of sports to choose from, including football, basketball, tennis, and more, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Baji Sports Live in no time.

Baji Betting Site – the perfect destination for anyone looking to indulge in some online betting action. With a range of sports to choose from, including football, basketball, tennis, and more, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Baji Betting Site in no time.

Most Bet – the perfect destination for anyone looking to indulge in some online gaming action. With a range of games to choose from, including sports, casino, and live dealer options, you’re sure to find something that suits your tastes. And with a user-friendly interface that’s easy to navigate, you can get started with Most Bet in no time.

Mostbet: A Comprehensive Review of the Online Betting Platform

Mostbet is a well-established online betting platform that has been in operation since 2009. With a strong presence in the global market, Mostbet has managed to build a reputation for itself as a reliable and trustworthy platform for sports betting and online casino games.

One of the key features that sets Mostbet apart from its competitors is its user-friendly interface. The platform is designed to be easy to navigate, with a simple and intuitive layout that makes it easy for users to find what they’re looking for. Whether you’re a seasoned bettor or a newcomer to the world of online betting, Mostbet’s interface is sure to impress.

Mostbet App: A Convenient Way to Bet on the Go

Mostbet also offers a mobile app that allows users to access the platform on the go. The Mostbet app is available for both iOS and Android devices, and it offers a range of features that make it easy to place bets and access account information from anywhere.

One of the key benefits of the Mostbet app is its ability to provide users with real-time updates on sports events. Whether you’re watching a live match or following the action from afar, the Mostbet app is sure to keep you informed and up-to-date on all the latest developments.

Mostbet is also known for its extensive range of sports and games. From football to basketball, tennis to cricket, and everything in between, Mostbet offers a wide range of options for users to bet on. And with a range of betting options available, including singles, doubles, and accumulators, users are sure to find a way to place a bet that suits their needs.

But Mostbet is more than just a sportsbook. The platform also offers a range of online casino games, including slots, table games, and live dealer games. Whether you’re a fan of classic slots or prefer the thrill of live dealer games, Mostbet has something for everyone.

Mostbet is also committed to providing its users with a safe and secure betting experience. The platform uses the latest encryption technology to ensure that all transactions are secure and protected from unauthorized access. And with a range of payment options available, including credit cards, e-wallets, and bank transfers, users can rest assured that their funds are safe and secure.

Mostbet is also available in a range of languages, including English, Russian, and many others. This makes it easy for users from around the world to access the platform and place bets in their native language.

Mostbet is also known for its excellent customer support. The platform offers a range of support options, including live chat, email, and phone support. And with a team of experienced and knowledgeable support staff on hand, users can rest assured that any issues they may encounter will be resolved quickly and efficiently.

In conclusion, Mostbet is a comprehensive online betting platform that offers a range of features and options for users to enjoy. From its user-friendly interface to its extensive range of sports and games, Mostbet is sure to impress. And with its commitment to providing a safe and secure betting experience, users can rest assured that their funds are safe and secure. Whether you’re a seasoned bettor or a newcomer to the world of online betting, Mostbet is definitely worth checking out.