Make WordPress Core

Changeset 20916


Ignore:
Timestamp:
05/25/2012 09:50:01 PM (14 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.