説明
WP_Customize_Manager は、テーマカスタマイザーの設定・セクション・コントロールを管理するクラスです。
基本構文
add_action( 'customize_register', function( WP_Customize_Manager $wp_customize ) { ... } )
引数
add_section():セクションを追加add_setting():設定を追加add_control():コントロールを追加
戻り値
customize_register フックで受け取ります。
使い方(サンプル)
add_action( 'customize_register', function( $wp_customize ) {
$wp_customize->add_section( 'my_section', array( 'title' => 'マイ設定' ) );
$wp_customize->add_setting( 'footer_text', array( 'default' => '' ) );
$wp_customize->add_control( 'footer_text', array(
'section' => 'my_section',
'label' => 'フッター文言',
'type' => 'text',
) );
} );
注意点
- 保存された値は
get_theme_mod()で取得します。 sanitize_callbackを設定に指定して、保存値を検証します。
実務での使いどころ
- テーマのカスタマイザーに、独自の設定(色、ロゴ、テキスト)を、追加するとき。
customize_registerフックの中で、設定・セクション・コントロールを、登録するとき。
よくあるミスと対処
customize_registerフックの外で、操作している。sanitize_callbackを、指定していない。保存される値が、検証されない。transportをpostMessageにしたのに、JavaScriptで、プレビューを更新する処理がない。- 設定のIDと、
get_theme_mod()で取得するキーが、違う。
NG例
$wp_customize->add_setting( 'main_color' ); // sanitize_callback がない
OK例
add_action( 'customize_register', function ( $wp_customize ) {
$wp_customize->add_setting( 'main_color', array(
'default' => '#3b82f6',
'sanitize_callback' => 'sanitize_hex_color',
) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'main_color', array(
'label' => 'メインカラー',
'section' => 'colors',
) ) );
} );
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| カスタマイザーに、設定を追加する | WP_Customize_Manager |
| 保存した値を、取得する | get_theme_mod() |
| 色の値を、検証する | sanitize_hex_color() |
関連項目
get_theme_mod()、set_theme_mod()、sanitize_hex_color()
公式リファレンス:WP_Customize_Manager | WordPress Developer Resources

コメント