functions.php
/*======================================
テーマカスタマイザー
======================================*/
function sample_customize_register( $wp_customize ) {
// セクション、テーマ設定、コントロールを追加します。
$wp_customize->add_section( 'sample_section' , [
'title' => 'サンプル',
'priority' => 130,
'description' => 'サンプルの説明文',
]);
/*
一般的なコントロール部品
----------------------------------- */
// テキストフィールド
$wp_customize->add_setting( 'sample_setting_text' );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'sample_control_text', [
'label' => 'テキスト',
'section' => 'sample_section',
'settings' => 'sample_setting_text',
'type' => 'text',
])
);
// テキストエリア
$wp_customize->add_setting( 'sample_setting_textarea' );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'sample_control_textarea', [
'label' => 'テキストエリア',
'section' => 'sample_section',
'settings' => 'sample_setting_textarea',
'type' => 'textarea',
])
);
// ラジオボタン
$wp_customize->add_setting( 'sample_setting_radio' );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'sample_control_radio', [
'label' => 'ラジオボタン',
'section' => 'sample_section',
'settings' => 'sample_setting_radio',
'type' => 'radio',
'choices' => [
'value1' => '選択肢1',
'value2' => '選択肢2',
'value3' => '選択肢3',
]
])
);
// チェックボックス
$wp_customize->add_setting( 'sample_setting_checkbox' );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'sample_control_checkbox', [
'label' => 'チェックボックス',
'section' => 'sample_section',
'settings' => 'sample_setting_checkbox',
'type' => 'checkbox',
])
);
// セレクトボックス
$wp_customize->add_setting( 'sample_setting_select' );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'sample_control_select', [
'label' => 'セレクトボックス',
'section' => 'sample_section',
'settings' => 'sample_setting_select',
'type' => 'select',
'choices' => [
'value1' => '選択肢1',
'value2' => '選択肢2',
'value3' => '選択肢3',
]
])
);
/*
カラーピッカー
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_colorpicker' );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'sample_control_colorpicker', [
'label' => 'カラーピッカー',
'section' => 'sample_section',
'settings' => 'sample_setting_colorpicker',
])
);
/*
日時
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_datetime' );
$wp_customize->add_control( new WP_Customize_Date_Time_Control( $wp_customize, 'sample_control_datetime', [
'label' => '日時',
'section' => 'sample_section',
'settings' => 'sample_setting_datetime',
])
);
/*
コードエディター
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_editor' );
$wp_customize->add_control( new WP_Customize_Code_Editor_Control( $wp_customize, 'sample_control_editor', [
'label' => 'コードエディター',
'section' => 'sample_section',
'settings' => 'sample_setting_editor',
])
);
/*
画像アップロード
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_image' );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'sample_control_image', [
'label' => '画像アップロード',
'section' => 'sample_section',
'settings' => 'sample_setting_image',
])
);
/*
メディアアップロード
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_media' );
$wp_customize->add_control( new WP_Customize_Media_Control( $wp_customize, 'sample_control_media', [
'label' => 'メディアアップロード',
'section' => 'sample_section',
'settings' => 'sample_setting_media',
])
);
/*
固定ページのセレクトボックス
----------------------------------- */
$wp_customize->add_setting( 'sample_setting_pages', [
'default' => false, // 初期値を false 設定
'sanitize_callback' => 'absint', // データベースで保存する際、整数に変換する
]);
$wp_customize->add_control( 'sample_setting_pages', [
'label' => '固定ページのセレクトボックス',
'section' => 'sample_section',
'type' => 'dropdown-pages',
'allow_addition' => true, // 固定ページの新規追加を可能にするか
]);
}
add_action( 'customize_register', 'sample_customize_register' );