[_s] customizer.js

customizer.js

_sで、カスタマイザー画面の非同期処理を行うためのjavascritpファイルです。カスタマイザー画面の非同期処理の実装の流れについては、以下のcodexが分かりやすいです。

Theme Customization API Part 3: Configure Live Preview (Optional)

端的にまとめると、以下のように書くことで、カスタマイザー画面で指定した変更を、その部分に非同期に適用することができるようになります。

wp.customize( '/*変更する部分のID*/', function( value ) {
	value.bind( function( /*カスタマイザー画面で新しく変更されたもの*/ ) {
		//変更する内容
	} );
} );

これを頭に入れてけば、どういうことをしているのか理解できると思います。

/**
 * File customizer.js.
 *
 * Theme Customizer enhancements for a better user experience.
 *
 * Contains handlers to make Theme Customizer preview reload changes asynchronously.
 */

( function( $ ) {

	// Site title and description.
	wp.customize( 'blogname', function( value ) {
		value.bind( function( to ) {
			$( '.site-title a' ).text( to );
		} );
	} );
	wp.customize( 'blogdescription', function( value ) {
		value.bind( function( to ) {
			$( '.site-description' ).text( to );
		} );
	} );

	// Header text color.
	wp.customize( 'header_textcolor', function( value ) {
		value.bind( function( to ) {
			if ( 'blank' === to ) {
				$( '.site-title, .site-description' ).css( {
					'clip': 'rect(1px, 1px, 1px, 1px)',
					'position': 'absolute'
				} );
			} else {
				$( '.site-title, .site-description' ).css( {
					'clip': 'auto',
					'position': 'relative'
				} );
				$( '.site-title a, .site-description' ).css( {
					'color': to
				} );
			}
		} );
	} );
} )( jQuery );

カスタマイザーの内部的な仕組み

カスタマイザーの内部的な仕組みについては、以下の2つのサイトが大変参考になりました。

WordPress Theme Customizer Javascript Interface

The WordPress Customizer