Index: /trunk/wp-content/themes/twentytwelve/functions.php =================================================================== --- /trunk/wp-content/themes/twentytwelve/functions.php (revision 21638) +++ /trunk/wp-content/themes/twentytwelve/functions.php (revision 21639) @@ -43,6 +43,4 @@ */ function twentytwelve_setup() { - global $twentytwelve_options; - /* * Makes Twenty Twelve available for translation. @@ -54,8 +52,4 @@ load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' ); - // Load up our theme options page and related code. - require( get_template_directory() . '/inc/theme-options.php' ); - $twentytwelve_options = new Twenty_Twelve_Options(); - // This theme styles the visual editor with editor-style.css to match the theme style. add_editor_style(); @@ -95,6 +89,4 @@ */ function twentytwelve_scripts_styles() { - global $twentytwelve_options; - /* * Adds JavaScript to pages with the comment form to support @@ -111,9 +103,7 @@ /* * Loads our special font CSS file. - * Depends on Theme Options setting. */ - $options = $twentytwelve_options->get_theme_options(); - if ( $options['enable_fonts'] ) - wp_enqueue_style( 'twentytwelve-fonts', $twentytwelve_options->custom_fonts_url(), array(), null ); + $protocol = is_ssl() ? 'https' : 'http'; + wp_enqueue_style( 'twentytwelve-fonts', "$protocol://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700", array(), null ); /* @@ -401,2 +391,26 @@ } add_action( 'template_redirect', 'twentytwelve_content_width' ); + +/** + * Add postMessage support for site title and description for the Theme Customizer. + * + * @since Twenty Twelve 1.0 + * + * @param WP_Customize_Manager $wp_customize Theme Customizer object. + * @return void + */ +function twentytwelve_customize_register( $wp_customize ) { + $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; + $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; +} +add_action( 'customize_register', 'twentytwelve_customize_register' ); + +/** + * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. + * + * @since Twenty Twelve 1.0 + */ +function twentytwelve_customize_preview_js() { + wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20120827', true ); +} +add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' ); Index: unk/wp-content/themes/twentytwelve/inc/theme-options.php =================================================================== --- /trunk/wp-content/themes/twentytwelve/inc/theme-options.php (revision 21638) +++ (revision ) @@ -1,260 +1,0 @@ -option_key = get_stylesheet() . '_theme_options'; - - add_action( 'admin_init', array( $this, 'options_init' ) ); - add_action( 'admin_menu', array( $this, 'add_page' ) ); - add_action( 'customize_register', array( $this, 'customize_register' ) ); - add_action( 'customize_preview_init', array( $this, 'customize_preview_js' ) ); - } - - /** - * Registers the form setting for our options array. - * - * This function is attached to the admin_init action hook. - * - * This call to register_setting() registers a validation callback, validate(), - * which is used when the option is saved, to ensure that our option values are properly - * formatted, and safe. - * - * @access public - * - * @return void - */ - public function options_init() { - // Load our options for use in any method. - $this->options = $this->get_theme_options(); - - // Register our option group. - register_setting( - 'twentytwelve_options', // Options group, see settings_fields() call in render_page() - $this->option_key, // Database option, see get_theme_options() - array( $this, 'validate' ) // The sanitization callback, see validate() - ); - - // Register our settings field group. - add_settings_section( - 'general', // Unique identifier for the settings section - '', // Section title (we don't want one) - '__return_false', // Section callback (we don't want anything) - 'theme_options' // Menu slug, used to uniquely identify the page; see add_page() - ); - - // Register our individual settings fields. - add_settings_field( - 'enable_fonts', // Unique identifier for the field for this section - __( 'Enable Web Fonts', 'twentytwelve' ), // Setting field label - array( $this, 'settings_field_enable_fonts' ), // Function that renders the settings field - 'theme_options', // Menu slug, used to uniquely identify the page; see add_page() - 'general' // Settings section. Same as the first argument in the add_settings_section() above - ); - } - - /** - * Adds our theme options page to the admin menu. - * - * This function is attached to the admin_menu action hook. - * - * @access public - * - * @return void - */ - public function add_page() { - $theme_page = add_theme_page( - __( 'Theme Options', 'twentytwelve' ), // Name of page - __( 'Theme Options', 'twentytwelve' ), // Label in menu - 'edit_theme_options', // Capability required - 'theme_options', // Menu slug, used to uniquely identify the page - array( $this, 'render_page' ) // Function that renders the options page - ); - } - - /** - * Returns the default options. - * - * @access public - * - * @return array - */ - public function get_default_theme_options() { - $default_theme_options = array( - 'enable_fonts' => false, - ); - - return apply_filters( 'twentytwelve_default_theme_options', $default_theme_options ); - } - - /** - * Returns the options array. - * - * @access public - * - * @return array - */ - public function get_theme_options() { - return get_option( $this->option_key, $this->get_default_theme_options() ); - } - - /** - * Renders the enable fonts checkbox setting field. - * - * @access public - * - * @return void - */ - public function settings_field_enable_fonts() { - $options = $this->options; - ?> - - -