WordPress.org

Make WordPress Core

Changeset 20916


Ignore:
Timestamp:
05/25/12 21:50:01 (5 years ago)
Author:
koopersmith
Message:

Twenty Eleven theme customizer integration. props lancewillett, Otto42. fixes #20448, see #19910.

Location:
trunk/wp-content/themes/twentyeleven/inc
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-content/themes/twentyeleven/inc/theme-options.php

    r20875 r20916  
    443443} 
    444444add_filter( 'body_class', 'twentyeleven_layout_classes' ); 
     445 
     446/** 
     447 * Implements Twenty Eleven theme options into Theme Customizer 
     448 * 
     449 * @param $wp_customize Theme Customizer object 
     450 * @return void 
     451 * 
     452 * @since Twenty Eleven 1.3 
     453 */ 
     454function twentyeleven_customize_register( $wp_customize ) { 
     455    $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; 
     456    $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; 
     457 
     458    $options  = twentyeleven_get_theme_options(); 
     459    $defaults = twentyeleven_get_default_theme_options(); 
     460 
     461    $wp_customize->add_setting( 'twentyeleven_theme_options[color_scheme]', array( 
     462        'default'    => $defaults['color_scheme'], 
     463        'type'       => 'option', 
     464        'capability' => 'edit_theme_options', 
     465    ) ); 
     466 
     467    $schemes = twentyeleven_color_schemes(); 
     468    $choices = array(); 
     469    foreach ( $schemes as $scheme ) { 
     470        $choices[ $scheme['value'] ] = $scheme['label']; 
     471    } 
     472 
     473    $wp_customize->add_control( 'twentyeleven_color_scheme', array( 
     474        'label'    => __( 'Color Scheme', 'twentyeleven' ), 
     475        'section'  => 'colors', 
     476        'settings' => 'twentyeleven_theme_options[color_scheme]', 
     477        'type'     => 'radio', 
     478        'choices'  => $choices, 
     479        'priority' => 5, 
     480    ) ); 
     481 
     482    // Link Color (added to Color Scheme section in Theme Customizer) 
     483    $wp_customize->add_setting( 'twentyeleven_theme_options[link_color]', array( 
     484        'default'           => twentyeleven_get_default_link_color( $options['color_scheme'] ), 
     485        'type'              => 'option', 
     486        'sanitize_callback' => 'twentyeleven_sanitize_hexcolor', 
     487        'capability'        => 'edit_theme_options', 
     488    ) ); 
     489 
     490    $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array( 
     491        'label'    => __( 'Link Color', 'twentyeleven' ), 
     492        'section'  => 'colors', 
     493        'settings' => 'twentyeleven_theme_options[link_color]', 
     494    ) ) ); 
     495 
     496    // Default Layout 
     497    $wp_customize->add_section( 'twentyeleven_layout', array( 
     498        'title'    => __( 'Layout', 'twentyeleven' ), 
     499        'priority' => 50, 
     500    ) ); 
     501 
     502    $wp_customize->add_setting( 'twentyeleven_theme_options[theme_layout]', array( 
     503        'type'              => 'option', 
     504        'default'           => $defaults['theme_layout'], 
     505        'sanitize_callback' => 'sanitize_key', 
     506    ) ); 
     507 
     508    $layouts = twentyeleven_layouts(); 
     509    $choices = array(); 
     510    foreach ( $layouts as $layout ) { 
     511        $choices[$layout['value']] = $layout['label']; 
     512    } 
     513 
     514    $wp_customize->add_control( 'twentyeleven_theme_options[theme_layout]', array( 
     515        'section'    => 'twentyeleven_layout', 
     516        'type'       => 'radio', 
     517        'choices'    => $choices, 
     518    ) ); 
     519} 
     520add_action( 'customize_register', 'twentyeleven_customize_register' ); 
     521 
     522/** 
     523 * Sanitize user input hex color value 
     524 * 
     525 * @uses sanitize_hexcolor() 
     526 * @param $color string 
     527 * @return string sanitized with prefixed # character 
     528 */ 
     529function twentyeleven_sanitize_hexcolor( $color ) { 
     530    return '#' . sanitize_hexcolor( $color ); 
     531} 
     532 
     533/** 
     534 * Bind JS handlers to make Theme Customizer preview reload changes asynchronously. 
     535 * Used with blogname and blogdescription. 
     536 * 
     537 * @since Twenty Eleven 1.3 
     538 */ 
     539function twentyeleven_customize_preview_js() { 
     540    wp_enqueue_script( 'twentyeleven-customizer', get_template_directory_uri() . '/inc/theme-customizer.js', array( 'customize-preview' ), '20120523', true ); 
     541} 
     542add_action( 'customize_preview_init', 'twentyeleven_customize_preview_js' ); 
Note: See TracChangeset for help on using the changeset viewer.