Make WordPress Core


Ignore:
Timestamp:
10/31/2021 11:15:10 PM (3 years ago)
Author:
TimothyBlynJacobs
Message:

REST API: Support custom namespaces for custom post types.

While a custom post type can define a custom route by using the rest_base argument, a namespace of wp/v2 was assumed. This commit introduces support for a rest_namespace argument.

A new rest_get_route_for_post_type_items function has been introduced and the rest_get_route_for_post function updated to facilitate getting the correct route for custom post types.

While the WordPress Core Block Editor bootstrap code has been updated to use these API functions, for maximum compatibility sticking with the default wp/v2 namespace is recommended until the API functions see wider use.

Props spacedmonkey, swissspidy.
Fixes #53656.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php

    r51786 r51962  
    264264        $response = rest_ensure_response( $data );
    265265
     266        $rest_url = rest_url( rest_get_route_for_post_type_items( 'post' ) );
    266267        if ( 'publish' === $status->name ) {
    267             $response->add_link( 'archives', rest_url( 'wp/v2/posts' ) );
     268            $response->add_link( 'archives', $rest_url );
    268269        } else {
    269             $response->add_link( 'archives', add_query_arg( 'status', $status->name, rest_url( 'wp/v2/posts' ) ) );
     270            $response->add_link( 'archives', add_query_arg( 'status', $status->name, $rest_url ) );
    270271        }
    271272
Note: See TracChangeset for help on using the changeset viewer.