WordPress.org

Make WordPress Core

Changeset 39468


Ignore:
Timestamp:
12/03/16 05:15:42 (5 months ago)
Author:
pento
Message:

REST API: Site URL setting should not be present on multisite installations.

The siteurl setting is registered and made available to the REST API. On a multisite installation, this setting is not configurable from the General Settings screen, but due to the above it is configurable from the REST API.

Props peterwilsoncc.
Fixes #39005.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/option.php

    r39406 r39468  
    17381738    ) ); 
    17391739 
    1740     register_setting( 'general', 'siteurl', array( 
    1741         'show_in_rest' => array( 
    1742             'name'    => 'url', 
    1743             'schema'  => array( 
    1744                 'format' => 'uri', 
     1740    if ( ! is_multisite() ) { 
     1741        register_setting( 'general', 'siteurl', array( 
     1742            'show_in_rest' => array( 
     1743                'name'    => 'url', 
     1744                'schema'  => array( 
     1745                    'format' => 'uri', 
     1746                ), 
    17451747            ), 
    1746         ), 
    1747         'type'         => 'string', 
    1748         'description'  => __( 'Site URL.' ), 
    1749     ) ); 
     1748            'type'         => 'string', 
     1749            'description'  => __( 'Site URL.' ), 
     1750        ) ); 
     1751    } 
    17501752 
    17511753    register_setting( 'general', 'admin_email', array( 
  • trunk/tests/phpunit/tests/rest-api/rest-settings-controller.php

    r39058 r39468  
    5050        $response = $this->server->dispatch( $request ); 
    5151        $data = $response->get_data(); 
    52  
    53         $this->assertEquals( 200, $response->get_status() ); 
    54         $this->assertEquals( array( 
     52        $actual = array_keys( $data ); 
     53 
     54        $expected = array( 
    5555            'title', 
    5656            'description', 
     
    6868            'default_ping_status', 
    6969            'default_comment_status', 
    70         ), array_keys( $data ) ); 
     70        ); 
     71 
     72        if ( is_multisite() ) { 
     73            $expected = array_diff( $expected, array( 'url' ) ); 
     74        } 
     75 
     76        sort( $expected ); 
     77        sort( $actual ); 
     78 
     79        $this->assertEquals( 200, $response->get_status() ); 
     80        $this->assertEquals( $expected, $actual ); 
    7181    } 
    7282 
Note: See TracChangeset for help on using the changeset viewer.