WordPress.org

Make WordPress Core

Ticket #20448: 20448.twentyeleven.3.diff

File 20448.twentyeleven.3.diff, 3.7 KB (added by Otto42, 6 years ago)

Add layouts too

  • wp-content/themes/twentyeleven/functions.php

     
    586586}
    587587add_filter( 'body_class', 'twentyeleven_body_classes' );
    588588
     589
     590function twentyeleven_customize_register($wp_customize) {
     591        if ( !isset( $wp_customize ) )
     592                return;
     593
     594        $wp_customize->get_setting('blogname')->transport='postMessage';
     595        $wp_customize->get_setting('blogdescription')->transport='postMessage';
     596        $wp_customize->get_setting('header_textcolor')->transport='postMessage';
     597               
     598        $wp_customize->add_section( 'twentyeleven_color_scheme', array(
     599                'title'          => __( 'Color Scheme', 'twentyeleven' ),
     600                'priority'       => 35,
     601        ) );
     602       
     603        $options = twentyeleven_get_theme_options();
     604        $defaults = twentyeleven_get_default_theme_options();
     605
     606        $wp_customize->add_setting( 'twentyeleven_theme_options[color_scheme]', array(
     607                'default'        => $defaults['color_scheme'],
     608                'type'           => 'option',
     609                'capability'     => 'edit_theme_options',
     610        ) );
     611               
     612        $schemes = twentyeleven_color_schemes();
     613        $choices = array();
     614        foreach ($schemes as $scheme) {
     615                $choices[$scheme['value']] = $scheme['label'];
     616        }
     617       
     618        $wp_customize->add_control( 'twentyeleven_color_scheme', array(
     619                'label'      => __( 'Color Scheme', 'twentyeleven' ),
     620                'section'    => 'twentyeleven_color_scheme',
     621                'settings'   => 'twentyeleven_theme_options[color_scheme]',
     622                'type'       => 'radio',
     623                'choices'    => $choices,
     624        ) );
     625
     626        $wp_customize->add_setting( 'twentyeleven_theme_options[link_color]', array(
     627                'default'        => twentyeleven_get_default_link_color($options['color_scheme']),
     628                'type'           => 'option',
     629                'sanitize_callback' => 'twentyeleven_sanitize_hexcolor',
     630                'capability'     => 'edit_theme_options',
     631        ) );
     632       
     633        $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
     634                'label'   => __( 'Link Color', 'twentyeleven' ),
     635                'section' => 'twentyeleven_color_scheme',
     636                'settings'   => 'twentyeleven_theme_options[link_color]',
     637        ) ) );
     638       
     639        $wp_customize->add_section( 'twentyeleven_layout', array(
     640                'title'    => __( 'Default Layout', 'twentyeleven' ),
     641                'priority' => 40,
     642        ) );
     643
     644        $wp_customize->add_setting( 'twentyeleven_theme_options[theme_layout]', array(
     645                'type'              => 'option',
     646                'default'           => $defaults['theme_layout'],
     647                'sanitize_callback' => 'sanitize_key',
     648        ) );
     649
     650        $layouts = twentyeleven_layouts();
     651        $choices = array();
     652        foreach ($layouts as $layout) {
     653                $choices[$layout['value']] = $layout['label'];
     654        }
     655       
     656        $wp_customize->add_control( 'twentyeleven_theme_options[theme_layout]', array(
     657                'section'    => 'twentyeleven_layout',
     658                'type'       => 'radio',
     659                'choices'    => $choices,
     660        ) );
     661       
     662        if ( $wp_customize->is_preview() && ! is_admin() )
     663                add_action( 'wp_footer', 'twentyeleven_customize_preview', 21);
     664}
     665add_action( 'customize_register', 'twentyeleven_customize_register' );
     666
     667
     668function twentyeleven_sanitize_hexcolor($color) {
     669        return '#'.sanitize_hexcolor($color);
     670}
     671
     672
     673function twentyeleven_customize_preview() {
     674        ?>
     675        <script type="text/javascript">
     676        wp.customize('blogname',function( value ) {
     677                value.bind(function(to) {
     678                        jQuery('#site-title a').html(to);
     679                });
     680        });
     681        wp.customize('blogdescription',function( value ) {
     682                value.bind(function(to) {
     683                        jQuery('#site-description').html(to);
     684                });
     685        });
     686        wp.customize( 'header_textcolor', function( value ) {
     687                value.bind( function( to ) {
     688                        jQuery('#site-title a, #site-description').css('color', to ? '#' + to : '' );
     689                });
     690        });
     691        </script>
     692        <?php
     693}