WordPress.org

Make WordPress Core

Ticket #40642: 40642.diff

File 40642.diff, 11.8 KB (added by spacedmonkey, 3 years ago)
  • src/wp-admin/includes/schema.php

     
    388388        if ( is_numeric( $offset_or_tz ) )
    389389                $gmt_offset = $offset_or_tz;
    390390        elseif ( $offset_or_tz && in_array( $offset_or_tz, timezone_identifiers_list() ) )
    391                         $timezone_string = $offset_or_tz;
     391                $timezone_string = $offset_or_tz;
    392392
    393393        $options = array(
    394         'siteurl' => $guessurl,
    395         'home' => $guessurl,
    396         'blogname' => __('My Site'),
    397         /* translators: site tagline */
    398         'blogdescription' => __('Just another WordPress site'),
    399         'users_can_register' => 0,
    400         'admin_email' => 'you@example.com',
    401         /* translators: default start of the week. 0 = Sunday, 1 = Monday */
    402         'start_of_week' => _x( '1', 'start of week' ),
    403         'use_balanceTags' => 0,
    404         'use_smilies' => 1,
    405         'require_name_email' => 1,
    406         'comments_notify' => 1,
    407         'posts_per_rss' => 10,
    408         'rss_use_excerpt' => 0,
    409         'mailserver_url' => 'mail.example.com',
    410         'mailserver_login' => 'login@example.com',
    411         'mailserver_pass' => 'password',
    412         'mailserver_port' => 110,
    413         'default_category' => 1,
    414         'default_comment_status' => 'open',
    415         'default_ping_status' => 'open',
    416         'default_pingback_flag' => 1,
    417         'posts_per_page' => 10,
    418         /* translators: default date format, see https://secure.php.net/date */
    419         'date_format' => __('F j, Y'),
    420         /* translators: default time format, see https://secure.php.net/date */
    421         'time_format' => __('g:i a'),
    422         /* translators: links last updated date format, see https://secure.php.net/date */
    423         'links_updated_date_format' => __('F j, Y g:i a'),
    424         'comment_moderation' => 0,
    425         'moderation_notify' => 1,
    426         'permalink_structure' => '',
    427         'rewrite_rules' => '',
    428         'hack_file' => 0,
    429         'blog_charset' => 'UTF-8',
    430         'moderation_keys' => '',
    431         'active_plugins' => array(),
    432         'category_base' => '',
    433         'ping_sites' => 'http://rpc.pingomatic.com/',
    434         'comment_max_links' => 2,
    435         'gmt_offset' => $gmt_offset,
    436 
    437         // 1.5
    438         'default_email_category' => 1,
    439         'recently_edited' => '',
    440         'template' => $template,
    441         'stylesheet' => $stylesheet,
    442         'comment_whitelist' => 1,
    443         'blacklist_keys' => '',
    444         'comment_registration' => 0,
    445         'html_type' => 'text/html',
    446 
    447         // 1.5.1
    448         'use_trackback' => 0,
    449 
    450         // 2.0
    451         'default_role' => 'subscriber',
    452         'db_version' => $wp_db_version,
    453 
    454         // 2.0.1
    455         'uploads_use_yearmonth_folders' => $uploads_use_yearmonth_folders,
    456         'upload_path' => '',
    457 
    458         // 2.1
    459         'blog_public' => '1',
    460         'default_link_category' => 2,
    461         'show_on_front' => 'posts',
    462 
    463         // 2.2
    464         'tag_base' => '',
    465 
    466         // 2.5
    467         'show_avatars' => '1',
    468         'avatar_rating' => 'G',
    469         'upload_url_path' => '',
    470         'thumbnail_size_w' => 150,
    471         'thumbnail_size_h' => 150,
    472         'thumbnail_crop' => 1,
    473         'medium_size_w' => 300,
    474         'medium_size_h' => 300,
    475 
    476         // 2.6
    477         'avatar_default' => 'mystery',
    478 
    479         // 2.7
    480         'large_size_w' => 1024,
    481         'large_size_h' => 1024,
    482         'image_default_link_type' => 'none',
    483         'image_default_size' => '',
    484         'image_default_align' => '',
    485         'close_comments_for_old_posts' => 0,
    486         'close_comments_days_old' => 14,
    487         'thread_comments' => 1,
    488         'thread_comments_depth' => 5,
    489         'page_comments' => 0,
    490         'comments_per_page' => 50,
    491         'default_comments_page' => 'newest',
    492         'comment_order' => 'asc',
    493         'sticky_posts' => array(),
    494         'widget_categories' => array(),
    495         'widget_text' => array(),
    496         'widget_rss' => array(),
    497         'uninstall_plugins' => array(),
    498 
    499         // 2.8
    500         'timezone_string' => $timezone_string,
    501 
    502         // 3.0
    503         'page_for_posts' => 0,
    504         'page_on_front' => 0,
    505 
    506         // 3.1
    507         'default_post_format' => 0,
    508 
    509         // 3.5
    510         'link_manager_enabled' => 0,
    511 
    512         // 4.3.0
    513         'finished_splitting_shared_terms' => 1,
    514         'site_icon' => 0,
    515 
    516         // 4.4.0
    517         'medium_large_size_w' => 768,
    518         'medium_large_size_h' => 0,
     394                'siteurl'                         => array( $guessurl, 'yes' ),
     395                'home'                            => array( $guessurl, 'yes' ),
     396                'blogname'                        => array( __( 'My Site' ), 'yes' ),
     397                /* translators: site tagline */
     398                'blogdescription'                 => array( __( 'Just another WordPress site' ), 'yes' ),
     399                'users_can_register'              => array( 0, 'yes' ),
     400                'admin_email'                     => array( 'you@example.com', 'yes' ),
     401                /* translators: default start of the week. 0 = Sunday, 'yes' ), 1 = Monday */
     402                'start_of_week'                   => array( _x( '1', 'no', 'start of week' ), 'yes' ),
     403                'use_balanceTags'                 => array( 0, 'yes' ),
     404                'use_smilies'                     => array( 1, 'yes' ),
     405                'require_name_email'              => array( 1, 'yes' ),
     406                'comments_notify'                 => array( 1, 'yes' ),
     407                'posts_per_rss'                   => array( 10, 'yes' ),
     408                'rss_use_excerpt'                 => array( 0, 'yes' ),
     409                'mailserver_url'                  => array( 'mail.example.com', 'yes' ),
     410                'mailserver_login'                => array( 'login@example.com', 'yes' ),
     411                'mailserver_pass'                 => array( 'password', 'yes' ),
     412                'mailserver_port'                 => array( 110, 'yes' ),
     413                'default_category'                => array( 1, 'yes' ),
     414                'default_comment_status'          => array( 'open', 'yes' ),
     415                'default_ping_status'             => array( 'open', 'yes' ),
     416                'default_pingback_flag'           => array( 1, 'yes' ),
     417                'posts_per_page'                  => array( 10, 'yes' ),
     418                /* translators: default date format, 'yes' ), see https://secure.php.net/date */
     419                'date_format'                     => array( __( 'F j, Y' ), 'yes' ),
     420                /* translators: default time format, 'yes' ), see https://secure.php.net/date */
     421                'time_format'                     => array( __( 'g:i a' ), 'yes' ),
     422                /* translators: links last updated date format, 'yes' ), see https://secure.php.net/date */
     423                'links_updated_date_format'       => array( __( 'F j, Y g:i a' ), 'yes' ),
     424                'comment_moderation'              => array( 0, 'yes' ),
     425                'moderation_notify'               => array( 1, 'yes' ),
     426                'permalink_structure'             => array( '', 'yes' ),
     427                'rewrite_rules'                   => array( '', 'yes' ),
     428                'hack_file'                       => array( 0, 'yes' ),
     429                'blog_charset'                    => array( 'UTF-8', 'yes' ),
     430                'moderation_keys'                 => array( '', 'no' ),
     431                'active_plugins'                  => array( array(), 'yes' ),
     432                'category_base'                   => array( '', 'yes' ),
     433                'ping_sites'                      => array( 'http://rpc.pingomatic.com/', 'yes' ),
     434                'comment_max_links'               => array( 2, 'yes' ),
     435                'gmt_offset'                      => array( $gmt_offset, 'yes' ),
     436
     437                // 1.5
     438                'default_email_category'          => array( 1, 'yes' ),
     439                'recently_edited'                 => array( '', 'no' ),
     440                'template'                        => array( $template, 'yes' ),
     441                'stylesheet'                      => array( $stylesheet, 'yes' ),
     442                'comment_whitelist'               => array( 1, 'yes' ),
     443                'blacklist_keys'                  => array( '', 'no' ),
     444                'comment_registration'            => array( 0, 'yes' ),
     445                'html_type'                       => array( 'text/html', 'yes' ),
     446
     447                // 1.5.1
     448                'use_trackback'                   => array( 0, 'yes' ),
     449
     450                // 2.0
     451                'default_role'                    => array( 'subscriber', 'yes' ),
     452                'db_version'                      => array( $wp_db_version, 'yes' ),
     453
     454                // 2.0.1
     455                'uploads_use_yearmonth_folders'   => array( $uploads_use_yearmonth_folders, 'yes' ),
     456                'upload_path'                     => array( '', 'yes' ),
     457
     458                // 2.1
     459                'blog_public'                     => array( '1', 'yes' ),
     460                'default_link_category'           => array( 2, 'yes' ),
     461                'show_on_front'                   => array( 'posts', 'yes' ),
     462
     463                // 2.2
     464                'tag_base'                        => array( '', 'yes' ),
     465
     466                // 2.5
     467                'show_avatars'                    => array( '1', 'yes' ),
     468                'avatar_rating'                   => array( 'G', 'yes' ),
     469                'upload_url_path'                 => array( '', 'yes' ),
     470                'thumbnail_size_w'                => array( 150, 'yes' ),
     471                'thumbnail_size_h'                => array( 150, 'yes' ),
     472                'thumbnail_crop'                  => array( 1, 'yes' ),
     473                'medium_size_w'                   => array( 300, 'yes' ),
     474                'medium_size_h'                   => array( 300, 'yes' ),
     475
     476                // 2.6
     477                'avatar_default'                  => array( 'mystery', 'yes' ),
     478
     479                // 2.7
     480                'large_size_w'                    => array( 1024, 'yes' ),
     481                'large_size_h'                    => array( 1024, 'yes' ),
     482                'image_default_link_type'         => array( 'none', 'yes' ),
     483                'image_default_size'              => array( '', 'yes' ),
     484                'image_default_align'             => array( '', 'yes' ),
     485                'close_comments_for_old_posts'    => array( 0, 'yes' ),
     486                'close_comments_days_old'         => array( 14, 'yes' ),
     487                'thread_comments'                 => array( 1, 'yes' ),
     488                'thread_comments_depth'           => array( 5, 'yes' ),
     489                'page_comments'                   => array( 0, 'yes' ),
     490                'comments_per_page'               => array( 50, 'yes' ),
     491                'default_comments_page'           => array( 'newest', 'yes' ),
     492                'comment_order'                   => array( 'asc', 'yes' ),
     493                'sticky_posts'                    => array( array(), 'yes' ),
     494                'widget_categories'               => array( array(), 'yes' ),
     495                'widget_text'                     => array( array(), 'yes' ),
     496                'widget_rss'                      => array( array(), 'yes' ),
     497                'uninstall_plugins'               => array( array(), 'no' ),
     498
     499                // 2.8
     500                'timezone_string'                 => array( $timezone_string, 'yes' ),
     501
     502                // 3.0
     503                'page_for_posts'                  => array( 0, 'yes' ),
     504                'page_on_front'                   => array( 0, 'yes' ),
     505
     506                // 3.1
     507                'default_post_format'             => array( 0, 'yes' ),
     508
     509                // 3.5
     510                'link_manager_enabled'            => array( 0, 'yes' ),
     511
     512                // 4.3.0
     513                'finished_splitting_shared_terms' => array( 1, 'yes' ),
     514                'site_icon'                       => array( 0, 'yes' ),
     515
     516                // 4.4.0
     517                'medium_large_size_w'             => array( 768, 'yes' ),
     518                'medium_large_size_h'             => array( 0, 'yes' ),
    519519        );
    520520
    521521        // 3.3
    522522        if ( ! is_multisite() ) {
    523                 $options['initial_db_version'] = ! empty( $wp_current_db_version ) && $wp_current_db_version < $wp_db_version
     523                $initial_db_version            = ! empty( $wp_current_db_version ) && $wp_current_db_version < $wp_db_version
    524524                        ? $wp_current_db_version : $wp_db_version;
     525                $options['initial_db_version'] = array( $initial_db_version, 'yes' );
    525526        }
    526527
    527528        // 3.0 multisite
    528529        if ( is_multisite() ) {
    529530                /* translators: site tagline */
    530                 $options[ 'blogdescription' ] = sprintf(__('Just another %s site'), get_network()->site_name );
    531                 $options[ 'permalink_structure' ] = '/%year%/%monthnum%/%day%/%postname%/';
     531                $options['blogdescription']     = array(
     532                        sprintf( __( 'Just another %s site' ), get_network()->site_name ),
     533                        'yes'
     534                );
     535                $options['permalink_structure'] = array(
     536                        '/%year%/%monthnum%/%day%/%postname%/',
     537                        'yes'
     538                );
    532539        }
    533540
    534         // Set autoload to no for these options
    535         $fat_options = array( 'moderation_keys', 'recently_edited', 'blacklist_keys', 'uninstall_plugins' );
     541        $options = apply_filters( 'default_options', $options );
    536542
    537543        $keys = "'" . implode( "', '", array_keys( $options ) ) . "'";
    538544        $existing_options = $wpdb->get_col( "SELECT option_name FROM $wpdb->options WHERE option_name in ( $keys )" );
    539545
    540546        $insert = '';
    541         foreach ( $options as $option => $value ) {
    542                 if ( in_array($option, $existing_options) )
     547        foreach ( $options as $option_name => $option ) {
     548                if ( in_array( $option_name, $existing_options ) ) {
    543549                        continue;
    544                 if ( in_array($option, $fat_options) )
    545                         $autoload = 'no';
    546                 else
    547                         $autoload = 'yes';
     550                }
     551                $value    = array_shift( $option );
     552                $autoload = array_shift( $option );
    548553
    549554                if ( is_array($value) )
    550555                        $value = serialize($value);
    551556                if ( !empty($insert) )
    552557                        $insert .= ', ';
    553                 $insert .= $wpdb->prepare( "(%s, %s, %s)", $option, $value, $autoload );
     558                $insert .= $wpdb->prepare( "(%s, %s, %s)", $option_name, $value, $autoload );
    554559        }
    555560
    556561        if ( !empty($insert) )