Make WordPress Core

Changeset 39468


Ignore:
Timestamp:
12/03/2016 05:15:42 AM (8 years 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.