Make WordPress Core

Changeset 39468


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