WordPress.org

Make WordPress Core

Ticket #18045: 18045.diff

File 18045.diff, 9.2 KB (added by nacin, 3 years ago)
  • wp-content/themes/twentyeleven/inc/theme-options.php

     
    4646                'twentyeleven_theme_options', // Database option, see twentyeleven_get_theme_options() 
    4747                'twentyeleven_theme_options_validate' // The sanitization callback, see twentyeleven_theme_options_validate() 
    4848        ); 
     49 
     50        // Register our settings field group 
     51        add_settings_section(  
     52                'general', // Unique identifier for the settings section 
     53                '',        // Section title (we don't want anything) 
     54                '__return_false', // Section callback (we don't want anything)  
     55                'theme_options'   // Menu slug, used to uniquely identify the page; see twentyeleven_theme_options_add_page() 
     56        ); 
     57 
     58        // Register our individual settings fields 
     59        add_settings_field(  
     60                'color_scheme',  // Unique identifier for the field for this section 
     61                __( 'Color Scheme', 'twentyeleven' ),           // Setting field label 
     62                'twentyeleven_add_settings_field_color_scheme', // Function that renders the settings field 
     63                'theme_options', // Menu slug, used to uniquely identify the page; see twentyeleven_theme_options_add_page() 
     64                'general'        // Settings section. Same as the first argument in the add_settings_section() above 
     65        ); 
     66 
     67        add_settings_field( 'link_color', __( 'Link Color', 'twentyeleven' ), 'twentyeleven_add_settings_field_link_color', 'theme_options', 'general' ); 
     68        add_settings_field( 'layout',     __( 'Layout',     'twentyeleven' ), 'twentyeleven_add_settings_field_layout',     'theme_options', 'general' ); 
    4969} 
    5070add_action( 'admin_init', 'twentyeleven_theme_options_init' ); 
    5171 
     
    7797 */ 
    7898function twentyeleven_theme_options_add_page() { 
    7999        $theme_page = add_theme_page( 
    80                 __( 'Theme Options', 'twentyeleven' ), // Name of page 
    81                 __( 'Theme Options', 'twentyeleven' ), // Label in menu 
    82                 'edit_theme_options',                  // Capability required 
    83                 'theme_options',                       // Menu slug, used to uniquely identify the page 
    84                 'theme_options_render_page'            // Function that renders the options page 
     100                __( 'Theme Options', 'twentyeleven' ),   // Name of page 
     101                __( 'Theme Options', 'twentyeleven' ),   // Label in menu 
     102                'edit_theme_options',                    // Capability required 
     103                'theme_options',                         // Menu slug, used to uniquely identify the page 
     104                'twentyeleven_theme_options_render_page' // Function that renders the options page 
    85105        ); 
    86106 
    87107        if ( ! $theme_page ) 
     
    202222} 
    203223 
    204224/** 
     225 * Renders the Color Scheme setting field. 
     226 *  
     227 * @since Twenty Eleven 1.2 
     228 */ 
     229function twentyeleven_add_settings_field_color_scheme() { 
     230        $options = twentyeleven_get_theme_options(); 
     231 
     232        foreach ( twentyeleven_color_schemes() as $scheme ) { 
     233        ?> 
     234        <div class="layout image-radio-option color-scheme"> 
     235        <label class="description"> 
     236                <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> /> 
     237                <input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" /> 
     238                <span> 
     239                        <img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" alt="" /> 
     240                        <?php echo $scheme['label']; ?> 
     241                </span> 
     242        </label> 
     243        </div> 
     244        <?php 
     245        } 
     246} 
     247 
     248/** 
     249 * Renders the Link Color setting field. 
     250 *  
     251 * @since Twenty Eleven 1.2 
     252 */ 
     253function twentyeleven_add_settings_field_link_color() { 
     254        $options = twentyeleven_get_theme_options(); 
     255        ?> 
     256        <input type="text" name="twentyeleven_theme_options[link_color]" id="link-color" value="<?php echo esc_attr( $options['link_color'] ); ?>" /> 
     257        <a href="#" class="pickcolor hide-if-no-js" id="link-color-example"></a> 
     258        <input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'twentyeleven' ); ?>" /> 
     259        <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div> 
     260        <br /> 
     261        <span><?php printf( __( 'Default color: %s', 'twentyeleven' ), '<span id="default-color">' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span> 
     262        <?php 
     263} 
     264 
     265/** 
     266 * Renders the Layout setting field. 
     267 *  
     268 * @since Twenty Eleven 1.2 
     269 */ 
     270function twentyeleven_add_settings_field_layout() { 
     271        $options = twentyeleven_get_theme_options(); 
     272        foreach ( twentyeleven_layouts() as $layout ) { 
     273                ?> 
     274                <div class="layout image-radio-option theme-layout"> 
     275                <label class="description"> 
     276                        <input type="radio" name="twentyeleven_theme_options[theme_layout]" value="<?php echo esc_attr( $layout['value'] ); ?>" <?php checked( $options['theme_layout'], $layout['value'] ); ?> /> 
     277                        <span> 
     278                                <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>" width="136" height="122" alt="" /> 
     279                                <?php echo $layout['label']; ?> 
     280                        </span> 
     281                </label> 
     282                </div> 
     283                <?php 
     284        } 
     285} 
     286 
     287/** 
    205288 * Returns the options array for Twenty Eleven. 
    206289 * 
    207  * @since Twenty Eleven 1.0 
     290 * @since Twenty Eleven 1.2 
    208291 */ 
    209 function theme_options_render_page() { 
     292function twentyeleven_theme_options_render_page() { 
    210293        ?> 
    211294        <div class="wrap"> 
    212295                <?php screen_icon(); ?> 
     
    216299                <form method="post" action="options.php"> 
    217300                        <?php 
    218301                                settings_fields( 'twentyeleven_options' ); 
    219                                 $options = twentyeleven_get_theme_options(); 
    220                                 $default_options = twentyeleven_get_default_theme_options(); 
    221                         ?> 
    222302 
    223                         <table class="form-table"> 
     303                                do_settings_sections( 'theme_options' ); 
    224304 
    225                                 <tr valign="top" class="image-radio-option color-scheme"><th scope="row"><?php _e( 'Color Scheme', 'twentyeleven' ); ?></th> 
    226                                         <td> 
    227                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Color Scheme', 'twentyeleven' ); ?></span></legend> 
    228                                                 <?php 
    229                                                         foreach ( twentyeleven_color_schemes() as $scheme ) { 
    230                                                                 ?> 
    231                                                                 <div class="layout"> 
    232                                                                 <label class="description"> 
    233                                                                         <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> /> 
    234                                                                         <input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" /> 
    235                                                                         <span> 
    236                                                                                 <img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" alt="" /> 
    237                                                                                 <?php echo $scheme['label']; ?> 
    238                                                                         </span> 
    239                                                                 </label> 
    240                                                                 </div> 
    241                                                                 <?php 
    242                                                         } 
    243                                                 ?> 
    244                                                 </fieldset> 
    245                                         </td> 
    246                                 </tr> 
    247  
    248                                 <tr valign="top"><th scope="row"><?php _e( 'Link Color', 'twentyeleven' ); ?></th> 
    249                                         <td> 
    250                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Link Color', 'twentyeleven' ); ?></span></legend> 
    251                                                         <input type="text" name="twentyeleven_theme_options[link_color]" id="link-color" value="<?php echo esc_attr( $options['link_color'] ); ?>" /> 
    252                                                         <a href="#" class="pickcolor hide-if-no-js" id="link-color-example"></a> 
    253                                                         <input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'twentyeleven' ); ?>" /> 
    254                                                         <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div> 
    255                                                         <br /> 
    256                                                         <span><?php printf( __( 'Default color: %s', 'twentyeleven' ), '<span id="default-color">' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span> 
    257                                                 </fieldset> 
    258                                         </td> 
    259                                 </tr> 
    260  
    261                                 <tr valign="top" class="image-radio-option theme-layout"><th scope="row"><?php _e( 'Default Layout', 'twentyeleven' ); ?></th> 
    262                                         <td> 
    263                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Color Scheme', 'twentyeleven' ); ?></span></legend> 
    264                                                 <?php 
    265                                                         foreach ( twentyeleven_layouts() as $layout ) { 
    266                                                                 ?> 
    267                                                                 <div class="layout"> 
    268                                                                 <label class="description"> 
    269                                                                         <input type="radio" name="twentyeleven_theme_options[theme_layout]" value="<?php echo esc_attr( $layout['value'] ); ?>" <?php checked( $options['theme_layout'], $layout['value'] ); ?> /> 
    270                                                                         <span> 
    271                                                                                 <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>" width="136" height="122" alt="" /> 
    272                                                                                 <?php echo $layout['label']; ?> 
    273                                                                         </span> 
    274                                                                 </label> 
    275                                                                 </div> 
    276                                                                 <?php 
    277                                                         } 
    278                                                 ?> 
    279                                                 </fieldset> 
    280                                         </td> 
    281                                 </tr> 
    282                         </table> 
    283  
    284                         <?php submit_button(); ?> 
     305                                submit_button(); 
     306                        ?> 
    285307                </form> 
    286308        </div> 
    287309        <?php 
  • wp-admin/includes/template.php

     
    11631163                return; 
    11641164 
    11651165        foreach ( (array) $wp_settings_sections[$page] as $section ) { 
    1166                 echo "<h3>{$section['title']}</h3>\n"; 
     1166                if ( $section['title'] ) 
     1167                        echo "<h3>{$section['title']}</h3>\n"; 
    11671168                call_user_func($section['callback'], $section); 
    11681169                if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section['id']]) ) 
    11691170                        continue;