{"id":5761,"date":"2026-02-12T20:45:20","date_gmt":"2026-02-13T01:45:20","guid":{"rendered":"https:\/\/chubes.net\/?documentation=rest-api-functions"},"modified":"2026-03-13T03:29:09","modified_gmt":"2026-03-13T07:29:09","slug":"rest-api-functions","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/rest-api\/rest-api-functions\/","title":{"rendered":"REST API Functions"},"content":{"rendered":"<p>Core functions for route registration, URL handling, and utilities.<\/p><p><strong>Source:<\/strong> <code>wp-includes\/rest-api.php<\/code><\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Route Registration<\/h2><h3 class=\"wp-block-heading\">register_rest_route()<\/h3><p>Registers a REST API route. Must be called during <code>rest_api_init<\/code> action.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">register_rest_route( string $route_namespace, string $route, array $args = array(), bool $override = false ): bool<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$route_namespace<\/code><\/td><td>string<\/td><td>First URL segment after prefix (e.g., <code>my-plugin\/v1<\/code>)<\/td><\/tr><tr><td><code>$route<\/code><\/td><td>string<\/td><td>Route path (e.g., <code>\/items\/(?P&lt;id&gt;d+)<\/code>)<\/td><\/tr><tr><td><code>$args<\/code><\/td><td>array<\/td><td>Endpoint options or array of options for multiple methods<\/td><\/tr><tr><td><code>$override<\/code><\/td><td>bool<\/td><td>Whether to override existing route. Default <code>false<\/code><\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Args:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Key<\/th><th>Type<\/th><th>Required<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>methods<\/code><\/td><td>string<\/td><td>Yes<\/td><td>HTTP methods (<code>GET<\/code>, <code>POST<\/code>, etc.)<\/td><\/tr><tr><td><code>callback<\/code><\/td><td>callable<\/td><td>Yes<\/td><td>Handler function<\/td><\/tr><tr><td><code>permission_callback<\/code><\/td><td>callable<\/td><td>Yes<\/td><td>Permission check (use <code>__return_true<\/code> for public)<\/td><\/tr><tr><td><code>args<\/code><\/td><td>array<\/td><td>No<\/td><td>Parameter definitions<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>true<\/code> on success, <code>false<\/code> on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">add_action( &#039;rest_api_init&#039;, function() {\n    register_rest_route( &#039;my-plugin\/v1&#039;, &#039;\/items\/(?P&lt;id&gt;d+)&#039;, array(\n        &#039;methods&#039;             =&gt; &#039;GET&#039;,\n        &#039;callback&#039;            =&gt; &#039;get_item&#039;,\n        &#039;permission_callback&#039; =&gt; &#039;__return_true&#039;,\n        &#039;args&#039;                =&gt; array(\n            &#039;id&#039; =&gt; array(\n                &#039;type&#039;              =&gt; &#039;integer&#039;,\n                &#039;required&#039;          =&gt; true,\n                &#039;validate_callback&#039; =&gt; fn( $v ) =&gt; $v &gt; 0,\n            ),\n        ),\n    ) );\n} );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">register_rest_field()<\/h3><p>Registers a new field on an existing object type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">register_rest_field( string|array $object_type, string $attribute, array $args = array() ): void<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$object_type<\/code><\/td><td>string|array<\/td><td>Object type(s): <code>post<\/code>, <code>term<\/code>, <code>comment<\/code>, etc.<\/td><\/tr><tr><td><code>$attribute<\/code><\/td><td>string<\/td><td>Field name<\/td><\/tr><tr><td><code>$args<\/code><\/td><td>array<\/td><td>Callbacks and schema<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Args:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Key<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>get_callback<\/code><\/td><td>callable|null<\/td><td>Retrieves field value<\/td><\/tr><tr><td><code>update_callback<\/code><\/td><td>callable|null<\/td><td>Sets field value<\/td><\/tr><tr><td><code>schema<\/code><\/td><td>array|null<\/td><td>JSON Schema for the field<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">register_rest_field( &#039;post&#039;, &#039;custom_meta&#039;, array(\n    &#039;get_callback&#039; =&gt; fn( $post ) =&gt; get_post_meta( $post[&#039;id&#039;], &#039;custom_key&#039;, true ),\n    &#039;update_callback&#039; =&gt; fn( $value, $post ) =&gt; update_post_meta( $post-&gt;ID, &#039;custom_key&#039;, $value ),\n    &#039;schema&#039; =&gt; array(\n        &#039;type&#039;        =&gt; &#039;string&#039;,\n        &#039;description&#039; =&gt; &#039;Custom metadata field&#039;,\n    ),\n) );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">URL Functions<\/h2><h3 class=\"wp-block-heading\">rest_url()<\/h3><p>Retrieves the URL to a REST endpoint.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_url( string $path = &#039;&#039;, string $scheme = &#039;rest&#039; ): string<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$path<\/code><\/td><td>string<\/td><td>REST route path<\/td><\/tr><tr><td><code>$scheme<\/code><\/td><td>string<\/td><td>URL scheme (<code>rest<\/code>, <code>http<\/code>, <code>https<\/code>)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Full URL to the endpoint.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_url( &#039;\/wp\/v2\/posts&#039; );\n\/\/ https:\/\/example.com\/wp-json\/wp\/v2\/posts<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">get_rest_url()<\/h3><p>Retrieves the URL to a REST endpoint on a site.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">get_rest_url( int $blog_id = null, string $path = &#039;\/&#039;, string $scheme = &#039;rest&#039; ): string<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$blog_id<\/code><\/td><td>int|null<\/td><td>Blog ID. Default current site<\/td><\/tr><tr><td><code>$path<\/code><\/td><td>string<\/td><td>REST route path<\/td><\/tr><tr><td><code>$scheme<\/code><\/td><td>string<\/td><td>URL scheme<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Full URL to the endpoint.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_url_prefix()<\/h3><p>Retrieves the REST URL prefix.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_url_prefix(): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> URL prefix, default <code>wp-json<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Request\/Response Functions<\/h2><h3 class=\"wp-block-heading\">rest_do_request()<\/h3><p>Performs an internal REST API request.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_do_request( WP_REST_Request|string $request ): WP_REST_Response<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$request<\/code><\/td><td>WP_REST_Request|string<\/td><td>Request object or route path<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Response from the endpoint.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$request = new WP_REST_Request( &#039;GET&#039;, &#039;\/wp\/v2\/posts&#039; );\n$request[&#039;per_page&#039;] = 5;\n$response = rest_do_request( $request );\n$posts = $response-&gt;get_data();<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_server()<\/h3><p>Retrieves the current REST server instance.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_server(): WP_REST_Server<\/code><\/pre><\/div><p><strong>Returns:<\/strong> The global <code>WP_REST_Server<\/code> instance.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_ensure_request()<\/h3><p>Ensures a request is a <code>WP_REST_Request<\/code> object.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_ensure_request( WP_REST_Request|array|string $request ): WP_REST_Request<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$request<\/code><\/td><td>mixed<\/td><td>Request to normalize<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>WP_REST_Request<\/code> instance.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_ensure_response()<\/h3><p>Ensures a response is a <code>WP_REST_Response<\/code> object.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_ensure_response( WP_REST_Response|WP_Error|WP_HTTP_Response|mixed $response ): WP_REST_Response|WP_Error<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$response<\/code><\/td><td>mixed<\/td><td>Response to normalize<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>WP_REST_Response<\/code> or <code>WP_Error<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_convert_error_to_response()<\/h3><p>Converts a <code>WP_Error<\/code> to a <code>WP_REST_Response<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_convert_error_to_response( WP_Error $error ): WP_REST_Response<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$error<\/code><\/td><td>WP_Error<\/td><td>Error to convert<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Response with error data, status from error&#8217;s <code>status<\/code> data.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Validation Functions<\/h2><h3 class=\"wp-block-heading\">rest_validate_request_arg()<\/h3><p>Validates a request argument based on route args.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_validate_request_arg( mixed $value, WP_REST_Request $request, string $param ): true|WP_Error<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$value<\/code><\/td><td>mixed<\/td><td>Value to validate<\/td><\/tr><tr><td><code>$request<\/code><\/td><td>WP_REST_Request<\/td><td>Request object<\/td><\/tr><tr><td><code>$param<\/code><\/td><td>string<\/td><td>Parameter name<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>true<\/code> if valid, <code>WP_Error<\/code> if invalid.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_sanitize_request_arg()<\/h3><p>Sanitizes a request argument based on route args.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_sanitize_request_arg( mixed $value, WP_REST_Request $request, string $param ): mixed<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$value<\/code><\/td><td>mixed<\/td><td>Value to sanitize<\/td><\/tr><tr><td><code>$request<\/code><\/td><td>WP_REST_Request<\/td><td>Request object<\/td><\/tr><tr><td><code>$param<\/code><\/td><td>string<\/td><td>Parameter name<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Sanitized value.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_parse_request_arg()<\/h3><p>Parses a request argument based on type.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_parse_request_arg( mixed $value, WP_REST_Request $request, string $param ): mixed|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_validate_value_from_schema()<\/h3><p>Validates a value against a JSON Schema.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_validate_value_from_schema( mixed $value, array $args, string $param = &#039;&#039; ): true|WP_Error<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$value<\/code><\/td><td>mixed<\/td><td>Value to validate<\/td><\/tr><tr><td><code>$args<\/code><\/td><td>array<\/td><td>JSON Schema definition<\/td><\/tr><tr><td><code>$param<\/code><\/td><td>string<\/td><td>Parameter name for errors<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>true<\/code> if valid, <code>WP_Error<\/code> if invalid.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_sanitize_value_from_schema()<\/h3><p>Sanitizes a value based on JSON Schema.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_sanitize_value_from_schema( mixed $value, array $args, string $param = &#039;&#039; ): mixed<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$value<\/code><\/td><td>mixed<\/td><td>Value to sanitize<\/td><\/tr><tr><td><code>$args<\/code><\/td><td>array<\/td><td>JSON Schema definition<\/td><\/tr><tr><td><code>$param<\/code><\/td><td>string<\/td><td>Parameter name<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Sanitized value.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_allowed_schema_keywords()<\/h3><p>Gets supported JSON Schema keywords.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_allowed_schema_keywords(): string[]<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Array of supported keywords like <code>type<\/code>, <code>enum<\/code>, <code>minimum<\/code>, <code>pattern<\/code>, etc.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Type Checking Functions<\/h2><h3 class=\"wp-block-heading\">rest_is_boolean()<\/h3><p>Determines if a value is boolean-like.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_boolean( mixed $maybe_bool ): bool<\/code><\/pre><\/div><p>Accepts: <code>true<\/code>, <code>false<\/code>, <code>'true'<\/code>, <code>'false'<\/code>, <code>1<\/code>, <code>0<\/code>, <code>'1'<\/code>, <code>'0'<\/code>, <code>'yes'<\/code>, <code>'no'<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_sanitize_boolean()<\/h3><p>Sanitizes a value to boolean.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_sanitize_boolean( mixed $value ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_is_integer()<\/h3><p>Determines if a value is an integer or integer string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_integer( mixed $maybe_integer ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_is_array()<\/h3><p>Determines if a value is array-like.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_array( mixed $maybe_array ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_sanitize_array()<\/h3><p>Sanitizes a value to an array.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_sanitize_array( mixed $maybe_array ): array<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_is_object()<\/h3><p>Determines if a value is object-like.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_object( mixed $maybe_object ): bool<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_sanitize_object()<\/h3><p>Sanitizes a value to an object\/associative array.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_sanitize_object( mixed $maybe_object ): array<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Date Functions<\/h2><h3 class=\"wp-block-heading\">rest_parse_date()<\/h3><p>Parses an RFC 3339 date string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_parse_date( string $date, bool $force_utc = false ): int|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$date<\/code><\/td><td>string<\/td><td>RFC 3339 date string<\/td><\/tr><tr><td><code>$force_utc<\/code><\/td><td>bool<\/td><td>Whether to force UTC timezone<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Unix timestamp or <code>false<\/code> on failure.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_date_with_gmt()<\/h3><p>Parses a date into local and GMT times.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_date_with_gmt( string $date, bool $is_utc = false ): array|null<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$date<\/code><\/td><td>string<\/td><td>RFC 3339 date<\/td><\/tr><tr><td><code>$is_utc<\/code><\/td><td>bool<\/td><td>Whether input is UTC<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Array with <code>date<\/code> and <code>date_gmt<\/code> keys, or <code>null<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Utility Functions<\/h2><h3 class=\"wp-block-heading\">rest_is_ip_address()<\/h3><p>Validates an IP address string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_ip_address( string $ip ): string|false<\/code><\/pre><\/div><p><strong>Returns:<\/strong> IP address if valid, <code>false<\/code> otherwise.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_parse_hex_color()<\/h3><p>Parses and validates a hex color.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_parse_hex_color( string $color ): string|false<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$color<\/code><\/td><td>string<\/td><td>Hex color with or without <code>#<\/code><\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> 6-character hex with <code>#<\/code>, or <code>false<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_avatar_urls()<\/h3><p>Retrieves avatar URLs for a user.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_avatar_urls( mixed $id_or_email ): array<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Array of size =&gt; URL pairs.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_avatar_sizes()<\/h3><p>Retrieves available avatar sizes.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_avatar_sizes(): int[]<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Default <code>array( 24, 48, 96 )<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_authorization_required_code()<\/h3><p>Gets appropriate HTTP status for unauthorized requests.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_authorization_required_code(): int<\/code><\/pre><\/div><p><strong>Returns:<\/strong> <code>401<\/code> if not logged in, <code>403<\/code> if logged in.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_is_rest_endpoint()<\/h3><p>Checks if the current request is a REST API request.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_is_rest_endpoint(): bool<\/code><\/pre><\/div><p><strong>Returns:<\/strong> <code>true<\/code> if REST request, <code>false<\/code> otherwise.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Route Lookup Functions<\/h2><h3 class=\"wp-block-heading\">rest_get_route_for_post()<\/h3><p>Gets the REST route for a post.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_route_for_post( WP_Post|int $post ): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Route like <code>\/wp\/v2\/posts\/123<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_route_for_post_type_items()<\/h3><p>Gets the REST route for a post type&#8217;s collection.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_route_for_post_type_items( string $post_type ): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Route like <code>\/wp\/v2\/posts<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_route_for_term()<\/h3><p>Gets the REST route for a term.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_route_for_term( WP_Term|int $term ): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Route like <code>\/wp\/v2\/categories\/5<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_route_for_taxonomy_items()<\/h3><p>Gets the REST route for a taxonomy&#8217;s collection.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_route_for_taxonomy_items( string $taxonomy ): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Route like <code>\/wp\/v2\/categories<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_get_queried_resource_route()<\/h3><p>Gets the REST route for the currently queried resource.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_queried_resource_route(): string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Route for current post, term, or author.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Response Filtering<\/h2><h3 class=\"wp-block-heading\">rest_filter_response_fields()<\/h3><p>Filters response to only include requested fields.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_filter_response_fields( WP_REST_Response $response, WP_REST_Server $server, WP_REST_Request $request ): WP_REST_Response<\/code><\/pre><\/div><p>Respects <code>_fields<\/code> query parameter.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_is_field_included()<\/h3><p>Checks if a field should be included in response.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_field_included( string $field, array $fields ): bool<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$field<\/code><\/td><td>string<\/td><td>Field to check (supports dot notation)<\/td><\/tr><tr><td><code>$fields<\/code><\/td><td>array<\/td><td>Requested fields<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_is_field_included( &#039;title.rendered&#039;, array( &#039;title&#039; ) ); \/\/ true\nrest_is_field_included( &#039;content&#039;, array( &#039;title&#039; ) );        \/\/ false<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_filter_response_by_context()<\/h3><p>Filters response data by schema context.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_filter_response_by_context( array $response_data, array $schema, string $context ): array<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$response_data<\/code><\/td><td>array<\/td><td>Response data<\/td><\/tr><tr><td><code>$schema<\/code><\/td><td>array<\/td><td>Full schema with context arrays<\/td><\/tr><tr><td><code>$context<\/code><\/td><td>string<\/td><td>Context (<code>view<\/code>, <code>edit<\/code>, <code>embed<\/code>)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Filtered response data.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_default_additional_properties_to_false()<\/h3><p>Sets <code>additionalProperties: false<\/code> on all object schemas.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_default_additional_properties_to_false( array $schema ): array<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Preloading<\/h2><h3 class=\"wp-block-heading\">rest_preload_api_request()<\/h3><p>Preloads REST API data to avoid additional requests.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_preload_api_request( array $memo, string $path ): array<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$memo<\/code><\/td><td>array<\/td><td>Preloaded data accumulator<\/td><\/tr><tr><td><code>$path<\/code><\/td><td>string<\/td><td>REST path to preload<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$preload_paths = array(\n    &#039;\/wp\/v2\/posts?per_page=5&#039;,\n    &#039;\/wp\/v2\/users\/me?context=edit&#039;,\n);\n$preload_data = array_reduce( $preload_paths, &#039;rest_preload_api_request&#039;, array() );\nwp_add_inline_script( &#039;my-script&#039;, &#039;var preloadedData = &#039; . wp_json_encode( $preload_data ) );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">rest_parse_embed_param()<\/h3><p>Parses the <code>_embed<\/code> parameter.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_parse_embed_param( string|array $embed ): bool|string[]<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$embed<\/code><\/td><td>string|array<\/td><td>Embed parameter value<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> <code>true<\/code> for all links, or array of relation names.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Schema Endpoints<\/h2><h3 class=\"wp-block-heading\">rest_get_endpoint_args_for_schema()<\/h3><p>Converts schema to endpoint args.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">rest_get_endpoint_args_for_schema( array $schema, string $method = WP_REST_Server::CREATABLE ): array<\/code><\/pre><\/div><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$schema<\/code><\/td><td>array<\/td><td>JSON Schema<\/td><\/tr><tr><td><code>$method<\/code><\/td><td>string<\/td><td>HTTP method for required fields<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Args array suitable for <code>register_rest_route()<\/code>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Core functions for route registration, URL handling, and utilities. Source: wp-includes\/rest-api.php Route Registration register_rest_route() Registers a REST API route. Must be called during rest_api_init action. register_rest_route( string $route_namespace, string $route,&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[653],"project_type":[749],"class_list":["post-5761","documentation","type-documentation","status-publish","hentry","project-rest-api","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":4,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5761\/revisions"}],"predecessor-version":[{"id":10961,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5761\/revisions\/10961"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5761"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5761"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5761"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}