WordPress.org

Make WordPress Core

Ticket #20506: 20506.diff

File 20506.diff, 4.7 KB (added by ryan, 2 years ago)

Store layout columns in num_columns option rather than a global. Deprecate the global. Use get_option( 'num_columns' ) instead of the global.

  • wp-admin/includes/dashboard.php

     
    193193 * @since 2.5.0 
    194194 */ 
    195195function wp_dashboard() { 
    196         global $screen_layout_columns; 
    197  
    198196        $screen = get_current_screen(); 
    199         $class = 'columns-' . $screen_layout_columns; 
     197        $class = 'columns-' . get_current_screen()->get_option( 'num_columns' ); 
    200198 
    201199?> 
    202200<div id="dashboard-widgets" class="metabox-holder <?php echo $class; ?>"> 
  • wp-admin/includes/screen.php

     
    566566         * 
    567567         * @param string $option Option ID. 
    568568         * @param mixed $key Optional. Specific array key for when the option is an array. 
     569         * @param mixed $default Optional. The value to return if the option is not set. Default is null. 
    569570         */ 
    570         public function get_option( $option, $key = false ) { 
     571        public function get_option( $option, $key = false, $default = null ) { 
    571572                if ( ! isset( $this->_options[ $option ] ) ) 
    572                         return null; 
     573                        return $default; 
    573574                if ( $key ) { 
    574575                        if ( isset( $this->_options[ $option ][ $key ] ) ) 
    575576                                return $this->_options[ $option ][ $key ]; 
    576                         return null; 
     577                        return $default; 
    577578                } 
    578579                return $this->_options[ $option ]; 
    579580        } 
     
    773774                                </div> 
    774775                        </div> 
    775776                <?php 
     777                // Setup layout columns 
     778                // Back compat for plugins using the filter instead of add_screen_option() 
     779                $columns = apply_filters( 'screen_layout_columns', array(), $this->id, $this ); 
     780 
     781                if ( ! empty( $columns ) && isset( $columns[ $this->id ] ) ) 
     782                        $this->add_option( 'layout_columns', array('max' => $columns[ $this->id ] ) ); 
     783 
     784                global $screen_layout_columns; // Global for back-compat. 
     785                $screen_layout_columns = 0;  
     786                if ( $this->get_option( 'layout_columns' ) ) { 
     787                        $screen_layout_columns = get_user_option("screen_layout_$this->id"); 
     788                        $num = $this->get_option( 'layout_columns', 'max' ); 
     789         
     790                        if ( ! $screen_layout_columns || 'auto' == $screen_layout_columns ) { 
     791                                if ( $this->get_option( 'layout_columns', 'default' ) ) 
     792                                        $screen_layout_columns = $this->get_option( 'layout_columns', 'default' ); 
     793                        } 
     794                } 
     795                $this->add_option( 'num_columns', $screen_layout_columns ); 
     796 
    776797                // Add screen options 
    777798                if ( $this->show_screen_options() ) 
    778799                        $this->render_screen_options(); 
     
    907928         * @since 3.3.0 
    908929         */ 
    909930        function render_screen_layout() { 
    910                 global $screen_layout_columns; 
    911  
    912                 // Back compat for plugins using the filter instead of add_screen_option() 
    913                 $columns = apply_filters( 'screen_layout_columns', array(), $this->id, $this ); 
    914  
    915                 if ( ! empty( $columns ) && isset( $columns[ $this->id ] ) ) 
    916                         $this->add_option( 'layout_columns', array('max' => $columns[ $this->id ] ) ); 
    917  
    918                 if ( ! $this->get_option('layout_columns') ) { 
    919                         $screen_layout_columns = 0; 
     931                if ( ! $this->get_option('layout_columns') ) 
    920932                        return; 
    921                 } 
    922933 
    923                 $screen_layout_columns = get_user_option("screen_layout_$this->id"); 
     934                $screen_layout_columns = $this->get_option( 'num_columns' ); 
    924935                $num = $this->get_option( 'layout_columns', 'max' ); 
    925936 
    926                 if ( ! $screen_layout_columns || 'auto' == $screen_layout_columns ) { 
    927                         if ( $this->get_option( 'layout_columns', 'default' ) ) 
    928                                 $screen_layout_columns = $this->get_option( 'layout_columns', 'default' ); 
    929                 } 
    930  
    931937                ?> 
    932938                <h5 class="screen-layout"><?php _e('Screen Layout'); ?></h5> 
    933939                <div class='columns-prefs'><?php 
  • wp-admin/edit-link-form.php

     
    7777 
    7878<div id="poststuff"> 
    7979 
    80 <div id="post-body" class="metabox-holder columns-<?php echo 1 == $screen_layout_columns ? '1' : '2'; ?>"> 
     80<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_option( 'num_columns' ) ? '1' : '2'; ?>"> 
    8181<div id="post-body-content"> 
    8282<div id="namediv" class="stuffbox"> 
    8383<h3><label for="link_name"><?php _ex('Name', 'link name') ?></label></h3> 
  • wp-admin/edit-form-advanced.php

     
    277277 
    278278<div id="poststuff"> 
    279279 
    280 <div id="post-body" class="metabox-holder columns-<?php echo 1 == $screen_layout_columns ? '1' : '2'; ?>"> 
     280<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_option( 'num_columns' ) ? '1' : '2'; ?>"> 
    281281<div id="post-body-content"> 
    282282<?php if ( post_type_supports($post_type, 'title') ) { ?> 
    283283<div id="titlediv">