Make WordPress Core

Ticket #38607: 38607.diff

File 38607.diff, 6.2 KB (added by jnylen0, 9 years ago)

Refreshed patch for rest_base

  • src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php

    diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
    index 534aa8e..09ad6a9 100644
    a b class WP_REST_Post_Types_Controller extends WP_REST_Controller { 
    156156                        'name'         => $post_type->label,
    157157                        'slug'         => $post_type->name,
    158158                        'taxonomies'   => array_values( $taxonomies ),
     159                        'rest_base'    => $post_type->rest_base,
    159160                );
    160161                $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
    161162                $data    = $this->add_additional_fields_to_object( $data, $request );
    class WP_REST_Post_Types_Controller extends WP_REST_Controller { 
    251252                                        'context'      => array( 'view', 'edit' ),
    252253                                        'readonly'     => true,
    253254                                ),
     255                                'rest_base'            => array(
     256                                        'description'  => __( 'REST base route for the resource.' ),
     257                                        'type'         => 'array',
     258                                        'context'      => array( 'view', 'edit', 'embed' ),
     259                                        'readonly'     => true,
     260                                ),
    254261                        ),
    255262                );
    256263                return $this->add_additional_fields_schema( $schema );
  • src/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php

    diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php
    index 21c0b0e..f113a6c 100644
    a b class WP_REST_Taxonomies_Controller extends WP_REST_Controller { 
    187187                        'types'        => $taxonomy->object_type,
    188188                        'show_cloud'   => $taxonomy->show_tagcloud,
    189189                        'hierarchical' => $taxonomy->hierarchical,
     190                        'rest_base'    => $taxonomy->rest_base,
    190191                );
    191192
    192193                $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
    class WP_REST_Taxonomies_Controller extends WP_REST_Controller { 
    285286                                        'context'      => array( 'view', 'edit' ),
    286287                                        'readonly'     => true,
    287288                                ),
     289                                'rest_base'            => array(
     290                                        'description'  => __( 'REST base route for the resource.' ),
     291                                        'type'         => 'array',
     292                                        'context'      => array( 'view', 'edit', 'embed' ),
     293                                        'readonly'     => true,
     294                                ),
    288295                        ),
    289296                );
    290297                return $this->add_additional_fields_schema( $schema );
  • tests/phpunit/tests/rest-api/rest-post-types-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-post-types-controller.php b/tests/phpunit/tests/rest-api/rest-post-types-controller.php
    index 9ae9ead..49c9ebb 100644
    a b class WP_Test_REST_Post_Types_Controller extends WP_Test_REST_Controller_Testcas 
    119119                $response = $this->server->dispatch( $request );
    120120                $data = $response->get_data();
    121121                $properties = $data['schema']['properties'];
    122                 $this->assertEquals( 7, count( $properties ) );
     122                $this->assertEquals( 8, count( $properties ) );
    123123                $this->assertArrayHasKey( 'capabilities', $properties );
    124124                $this->assertArrayHasKey( 'description', $properties );
    125125                $this->assertArrayHasKey( 'hierarchical', $properties );
    class WP_Test_REST_Post_Types_Controller extends WP_Test_REST_Controller_Testcas 
    127127                $this->assertArrayHasKey( 'name', $properties );
    128128                $this->assertArrayHasKey( 'slug', $properties );
    129129                $this->assertArrayHasKey( 'taxonomies', $properties );
     130                $this->assertArrayHasKey( 'rest_base', $properties );
    130131        }
    131132
    132133        public function test_get_additional_field_registration() {
    class WP_Test_REST_Post_Types_Controller extends WP_Test_REST_Controller_Testcas 
    170171                $this->assertEquals( $post_type_obj->name, $data['slug'] );
    171172                $this->assertEquals( $post_type_obj->description, $data['description'] );
    172173                $this->assertEquals( $post_type_obj->hierarchical, $data['hierarchical'] );
     174                $this->assertEquals( $post_type_obj->rest_base, $data['rest_base'] );
    173175
    174176                $links = test_rest_expand_compact_links( $links );
    175177                $this->assertEquals( rest_url( 'wp/v2/types' ), $links['collection'][0]['href'] );
  • tests/phpunit/tests/rest-api/rest-taxonomies-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php b/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php
    index 7f00598..00aa196 100644
    a b class WP_Test_REST_Taxonomies_Controller extends WP_Test_REST_Controller_Testcas 
    4545                $this->assertEquals( 'Tags', $data['post_tag']['name'] );
    4646                $this->assertEquals( 'post_tag', $data['post_tag']['slug'] );
    4747                $this->assertEquals( false, $data['post_tag']['hierarchical'] );
     48                $this->assertEquals( 'tags', $data['post_tag']['rest_base'] );
    4849        }
    4950
    5051        public function test_get_items_invalid_permission_for_context() {
    class WP_Test_REST_Taxonomies_Controller extends WP_Test_REST_Controller_Testcas 
    134135                $response = $this->server->dispatch( $request );
    135136                $data = $response->get_data();
    136137                $properties = $data['schema']['properties'];
    137                 $this->assertEquals( 8, count( $properties ) );
     138                $this->assertEquals( 9, count( $properties ) );
    138139                $this->assertArrayHasKey( 'capabilities', $properties );
    139140                $this->assertArrayHasKey( 'description', $properties );
    140141                $this->assertArrayHasKey( 'hierarchical', $properties );
    class WP_Test_REST_Taxonomies_Controller extends WP_Test_REST_Controller_Testcas 
    143144                $this->assertArrayHasKey( 'slug', $properties );
    144145                $this->assertArrayHasKey( 'show_cloud', $properties );
    145146                $this->assertArrayHasKey( 'types', $properties );
     147                $this->assertArrayHasKey( 'rest_base', $properties );
    146148        }
    147149
    148150        public function tearDown() {
    class WP_Test_REST_Taxonomies_Controller extends WP_Test_REST_Controller_Testcas 
    168170                $this->assertEquals( $tax_obj->name, $data['slug'] );
    169171                $this->assertEquals( $tax_obj->description, $data['description'] );
    170172                $this->assertEquals( $tax_obj->hierarchical, $data['hierarchical'] );
     173                $this->assertEquals( $tax_obj->rest_base, $data['rest_base'] );
    171174                $this->assertEquals( rest_url( 'wp/v2/taxonomies' ), $links['collection'][0]['href'] );
    172175                $this->assertArrayHasKey( 'https://api.w.org/items', $links );
    173176                if ( 'edit' === $context ) {