WordPress.org

Make WordPress Core


Ignore:
Timestamp:
04/19/2017 06:51:25 PM (2 years ago)
Author:
ocean90
Message:

Multisite: After [37918] add support for retrieving custom site properties set by the site_details filter.

The behaviour was previously possible with the blog_details filter and get_blog_details() function. The former is deprecated since [38936].
This change adjusts the magic methods of WP_Site to also check if $key exists in WP_Site::get_details().

Fixes #40458.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/multisite/siteDetails.php

    r40344 r40478  
    145145        $this->assertNotFalse( $cached_details );
    146146    }
     147
     148    public function test_site_details_filter_with_blogname() {
     149        add_filter( 'site_details', array( $this, '_filter_site_details_blogname' ) );
     150        $site = get_site();
     151        $blogname = $site->blogname;
     152        remove_filter( 'site_details', array( $this, '_filter_site_details_blogname' ) );
     153
     154        $this->assertSame( 'Foo Bar', $blogname );
     155    }
     156
     157    public function _filter_site_details_blogname( $details ) {
     158        $details->blogname = 'Foo Bar';
     159        return $details;
     160    }
     161
     162    /**
     163     * @ticket 40458
     164     */
     165    public function test_site_details_filter_with_custom_value_isetter() {
     166        add_filter( 'site_details', array( $this, '_filter_site_details_custom_value' ) );
     167        $site = get_site();
     168        $custom_value_isset = isset( $site->custom_value );
     169        remove_filter( 'site_details', array( $this, '_filter_site_details_custom_value' ) );
     170
     171        $this->assertTrue( $custom_value_isset );
     172    }
     173
     174    /**
     175     * @ticket 40458
     176     */
     177    public function test_site_details_filter_with_custom_value_getter() {
     178        add_filter( 'site_details', array( $this, '_filter_site_details_custom_value' ) );
     179        $site = get_site();
     180        $custom_value = $site->custom_value;
     181        remove_filter( 'site_details', array( $this, '_filter_site_details_custom_value' ) );
     182
     183        $this->assertSame( 'foo', $custom_value );
     184    }
     185
     186    public function _filter_site_details_custom_value( $details ) {
     187        $details->custom_value = 'foo';
     188        return $details;
     189    }
    147190}
    148191
Note: See TracChangeset for help on using the changeset viewer.