WordPress.org

Make WordPress Core

Ticket #38553: fix-terms-3.diff

File fix-terms-3.diff, 2.3 KB (added by timmydcrawford, 5 years ago)
  • src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php

     
    10501050                        if ( ! isset( $request[ $base ] ) ) {
    10511051                                continue;
    10521052                        }
    1053                         $terms = array_map( 'absint', $request[ $base ] );
    1054                         $result = wp_set_object_terms( $post_id, $terms, $taxonomy->name );
     1053                        $result = wp_set_object_terms( $post_id, $request[ $base ], $taxonomy->name );
    10551054                        if ( is_wp_error( $result ) ) {
    10561055                                return $result;
    10571056                        }
     
    17741773                                'description' => sprintf( __( 'The terms assigned to the object in the %s taxonomy.' ), $taxonomy->name ),
    17751774                                'type'        => 'array',
    17761775                                'context'     => array( 'view', 'edit' ),
     1776                                'arg_options' => array(
     1777                                        'sanitize_callback' => 'wp_parse_id_list'
     1778                                ),
    17771779                        );
    17781780                        $schema['properties'][ $base . '_exclude' ] = array(
    17791781                                'description' => sprintf( __( 'The terms in the %s taxonomy that should not be assigned to the object.' ), $taxonomy->name ),
  • tests/phpunit/tests/rest-api/rest-posts-controller.php

     
    12901290                $this->assertEquals( array( $category['term_id'] ), $data['categories'] );
    12911291        }
    12921292
     1293        public function test_create_post_with_categories_as_string() {
     1294                wp_set_current_user( $this->editor_id );
     1295                $category = wp_insert_term( 'Chicken', 'category' );
     1296                $category2 = wp_insert_term( 'Ribs', 'category' );
     1297                $request = new WP_REST_Request( 'POST', '/wp/v2/posts' );
     1298                $params = $this->set_post_data( array(
     1299                        'categories' => $category['term_id'] . ',' . $category2['term_id'],
     1300                ) );
     1301                $request->set_body_params( $params );
     1302                $response = $this->server->dispatch( $request );
     1303
     1304                $data = $response->get_data();
     1305                $this->assertEquals( array( $category['term_id'], $category2['term_id'] ), $data['categories'] );
     1306        }
     1307
    12931308        public function test_create_post_with_invalid_categories() {
    12941309                wp_set_current_user( $this->editor_id );
    12951310                $request = new WP_REST_Request( 'POST', '/wp/v2/posts' );