WordPress.org

Make WordPress Core

Changeset 40589


Ignore:
Timestamp:
05/09/17 14:58:39 (8 months ago)
Author:
flixos90
Message:

Multisite: Introduce minimum_site_name_length filter.

Prior to this change, the minimum site name length checked in wpmu_validate_blog_signup() was set to a fixed value of 4. The new filter allows tweaking this value, as there may be cases where shorter site names may be required.

Fixes #39676.

Location:
trunk
Files:
2 edited

Legend:

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

    r40486 r40589  
    578578        $errors->add('blogname',  __( 'That name is not allowed.' ) ); 
    579579 
    580     if ( strlen( $blogname ) < 4 ) { 
    581         $errors->add('blogname',  __( 'Site name must be at least 4 characters.' ) ); 
     580    /** 
     581     * Filters the minimum site name length required when validating a site signup. 
     582     * 
     583     * @since 4.8.0 
     584     * 
     585     * @param int $length The minimum site name length. Default 4. 
     586     */ 
     587    $minimum_site_name_length = apply_filters( 'minimum_site_name_length', 4 ); 
     588 
     589    if ( strlen( $blogname ) < $minimum_site_name_length ) { 
     590        /* translators: %s: minimum site name length */ 
     591        $errors->add( 'blogname', sprintf( _n( 'Site name must be at least %s character.', 'Site name must be at least %s characters.', $minimum_site_name_length ), number_format_i18n( $minimum_site_name_length ) ) ); 
    582592    } 
    583593 
  • trunk/tests/phpunit/tests/multisite/wpmuValidateBlogSignup.php

    r40391 r40589  
    1414    protected static $existing_blog_name = 'existingsitefoo'; 
    1515    protected static $existing_blog_id; 
     16 
     17    protected $minimum_site_name_length = 4; 
    1618 
    1719    public static function wpSetUpBeforeClass( $factory ) { 
     
    8789        $this->assertEmpty( $result['errors']->get_error_codes() ); 
    8890    } 
     91 
     92    /** 
     93     * @ticket 39676 
     94     * 
     95     * @dataProvider data_filter_minimum_site_name_length 
     96     */ 
     97    public function test_filter_minimum_site_name_length( $site_name, $minimum_length, $expect_error ) { 
     98        $this->minimum_site_name_length = $minimum_length; 
     99        add_filter( 'minimum_site_name_length', array( $this, 'filter_minimum_site_name_length' ) ); 
     100 
     101        $result = wpmu_validate_blog_signup( $site_name, 'Site Title', get_userdata( self::$super_admin_id ) ); 
     102 
     103        remove_filter( 'minimum_site_name_length', array( $this, 'filter_minimum_site_name_length' ) ); 
     104        $this->minimum_site_name_length = 4; 
     105 
     106        if ( $expect_error ) { 
     107            $this->assertContains( 'blogname', $result['errors']->get_error_codes() ); 
     108        } else { 
     109            $this->assertEmpty( $result['errors']->get_error_codes() ); 
     110        } 
     111    } 
     112 
     113    public function data_filter_minimum_site_name_length() { 
     114        return array( 
     115            array( 'fooo', 5, true ), 
     116            array( 'foooo', 5, false ), 
     117            array( 'foo', 4, true ), 
     118            array( 'fooo', 4, false ), 
     119            array( 'fo', 3, true ), 
     120            array( 'foo', 3, false ), 
     121        ); 
     122    } 
     123 
     124    public function filter_minimum_site_name_length() { 
     125        return $this->minimum_site_name_length; 
     126    } 
    89127} 
    90128 
Note: See TracChangeset for help on using the changeset viewer.