mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-09 09:57:38 +01:00
REST API: Use helper functions for building routes in more places.
Props get_dave, spacedmonkey. Fixes #56472. Built from https://develop.svn.wordpress.org/trunk@54121 git-svn-id: http://core.svn.wordpress.org/trunk@53680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
a99adb76ed
commit
ef6619d68e
@ -418,7 +418,8 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
|
||||
$response->header( 'X-WP-TotalPages', (int) $max_pages );
|
||||
|
||||
$request_params = $request->get_query_params();
|
||||
$base = add_query_arg( urlencode_deep( $request_params ), rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ) );
|
||||
$collection_url = rest_url( rest_get_route_for_post_type_items( $this->post_type ) );
|
||||
$base = add_query_arg( urlencode_deep( $request_params ), $collection_url );
|
||||
|
||||
if ( $page > 1 ) {
|
||||
$prev_page = $page - 1;
|
||||
@ -777,7 +778,7 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
|
||||
$response = rest_ensure_response( $response );
|
||||
|
||||
$response->set_status( 201 );
|
||||
$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $post_id ) ) );
|
||||
$response->header( 'Location', rest_url( rest_get_route_for_post( $post ) ) );
|
||||
|
||||
return $response;
|
||||
}
|
||||
@ -2030,15 +2031,13 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
|
||||
* @return array Links for the given post.
|
||||
*/
|
||||
protected function prepare_links( $post ) {
|
||||
$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
|
||||
|
||||
// Entity meta.
|
||||
$links = array(
|
||||
'self' => array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $post->ID ),
|
||||
'href' => rest_url( rest_get_route_for_post( $post->ID ) ),
|
||||
),
|
||||
'collection' => array(
|
||||
'href' => rest_url( $base ),
|
||||
'href' => rest_url( rest_get_route_for_post_type_items( $this->post_type ) ),
|
||||
),
|
||||
'about' => array(
|
||||
'href' => rest_url( 'wp/v2/types/' . $this->post_type ),
|
||||
@ -2066,15 +2065,16 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
|
||||
if ( in_array( $post->post_type, array( 'post', 'page' ), true ) || post_type_supports( $post->post_type, 'revisions' ) ) {
|
||||
$revisions = wp_get_latest_revision_id_and_total_count( $post->ID );
|
||||
$revisions_count = ! is_wp_error( $revisions ) ? $revisions['count'] : 0;
|
||||
$revisions_base = sprintf( '/%s/%s/%d/revisions', $this->namespace, $this->rest_base, $post->ID );
|
||||
|
||||
$links['version-history'] = array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $post->ID . '/revisions' ),
|
||||
'href' => rest_url( $revisions_base ),
|
||||
'count' => $revisions_count,
|
||||
);
|
||||
|
||||
if ( $revisions_count > 0 ) {
|
||||
$links['predecessor-version'] = array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $post->ID . '/revisions/' . $revisions['latest_id'] ),
|
||||
'href' => rest_url( $revisions_base . '/' . $revisions['latest_id'] ),
|
||||
'id' => $revisions['latest_id'],
|
||||
);
|
||||
}
|
||||
|
@ -334,7 +334,8 @@ class WP_REST_Revisions_Controller extends WP_REST_Controller {
|
||||
$response->header( 'X-WP-TotalPages', (int) $max_pages );
|
||||
|
||||
$request_params = $request->get_query_params();
|
||||
$base = add_query_arg( urlencode_deep( $request_params ), rest_url( sprintf( '%s/%s/%d/%s', $this->namespace, $this->parent_base, $request['parent'], $this->rest_base ) ) );
|
||||
$base_path = rest_url( sprintf( '%s/%s/%d/%s', $this->namespace, $this->parent_base, $request['parent'], $this->rest_base ) );
|
||||
$base = add_query_arg( urlencode_deep( $request_params ), $base_path );
|
||||
|
||||
if ( $page > 1 ) {
|
||||
$prev_page = $page - 1;
|
||||
@ -620,7 +621,7 @@ class WP_REST_Revisions_Controller extends WP_REST_Controller {
|
||||
$response = rest_ensure_response( $data );
|
||||
|
||||
if ( ! empty( $data['parent'] ) ) {
|
||||
$response->add_link( 'parent', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->parent_base, $data['parent'] ) ) );
|
||||
$response->add_link( 'parent', rest_url( rest_get_route_for_post( $data['parent'] ) ) );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -687,14 +687,12 @@ class WP_REST_Templates_Controller extends WP_REST_Controller {
|
||||
* @return array Links for the given post.
|
||||
*/
|
||||
protected function prepare_links( $id ) {
|
||||
$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
|
||||
|
||||
$links = array(
|
||||
'self' => array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $id ),
|
||||
'href' => rest_url( rest_get_route_for_post( $id ) ),
|
||||
),
|
||||
'collection' => array(
|
||||
'href' => rest_url( $base ),
|
||||
'href' => rest_url( rest_get_route_for_post_type_items( $this->post_type ) ),
|
||||
),
|
||||
'about' => array(
|
||||
'href' => rest_url( 'wp/v2/types/' . $this->post_type ),
|
||||
|
@ -303,7 +303,10 @@ class WP_REST_Terms_Controller extends WP_REST_Controller {
|
||||
|
||||
$response->header( 'X-WP-TotalPages', (int) $max_pages );
|
||||
|
||||
$base = add_query_arg( urlencode_deep( $request->get_query_params() ), rest_url( $this->namespace . '/' . $this->rest_base ) );
|
||||
$request_params = $request->get_query_params();
|
||||
$collection_url = rest_url( rest_get_route_for_taxonomy_items( $this->taxonomy ) );
|
||||
$base = add_query_arg( urlencode_deep( $request_params ), $collection_url );
|
||||
|
||||
if ( $page > 1 ) {
|
||||
$prev_page = $page - 1;
|
||||
|
||||
@ -893,13 +896,12 @@ class WP_REST_Terms_Controller extends WP_REST_Controller {
|
||||
* @return array Links for the given term.
|
||||
*/
|
||||
protected function prepare_links( $term ) {
|
||||
$base = $this->namespace . '/' . $this->rest_base;
|
||||
$links = array(
|
||||
'self' => array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $term->term_id ),
|
||||
'href' => rest_url( rest_get_route_for_term( $term ) ),
|
||||
),
|
||||
'collection' => array(
|
||||
'href' => rest_url( $base ),
|
||||
'href' => rest_url( rest_get_route_for_taxonomy_items( $this->taxonomy ) ),
|
||||
),
|
||||
'about' => array(
|
||||
'href' => rest_url( sprintf( 'wp/v2/taxonomies/%s', $this->taxonomy ) ),
|
||||
@ -911,7 +913,7 @@ class WP_REST_Terms_Controller extends WP_REST_Controller {
|
||||
|
||||
if ( $parent_term ) {
|
||||
$links['up'] = array(
|
||||
'href' => rest_url( trailingslashit( $base ) . $parent_term->term_id ),
|
||||
'href' => rest_url( rest_get_route_for_term( $parent_term ) ),
|
||||
'embeddable' => true,
|
||||
);
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.1-alpha-54120';
|
||||
$wp_version = '6.1-alpha-54121';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
Loading…
Reference in New Issue
Block a user