2024年08月05日
Actionフック:customize_register
アクションフックの customize_register は、外観→カスタマイズの実行時にフックされます。
カスタムメニュの追加/削除及びユーザ作成メニュの追加に利用します。
1.基本系
基本系は下記になります。
function ○○($wp_customize){
// 不要なカスタマイズメニュの削除
// 新規カスタマイズメニュの追加
}
add_action( 'customize_register', ○○,$priority,$num);
■'customize_register'は関数に参照変数として$wp_customizeを提供します。
よって$numは1になります。
事例
①不要なカスマイズメニュを削除する。
function remove_item($wp_customize){
$wp_customize->remove_panel('nav_menus'); // メニュを削除
$wp_customize->remove_panel('widgets'); // ウィジェットを削除
$wp_customize->remove_section('static_front_page'); //ホームページ設定を削除
$wp_customize->remove_section('custom_css'); //追加CSSを削除
}
add_action( 'customize_register', 'remove_item',10,1);
■詳細は 不要なカスタマイズメニュの削除を参照してください。
②ユーザが作成したカスタマイズメニュを作成する。
function add_custom_item($wp_customize){
// 外観→カスタマイズにサイドバーの位置(左右)を設定するメニューを新設する
$wp_customize->add_section( 'sidebar_section', array(
'title' => 'サイドバー設定',
'priority' => 81,
'description' => 'サイドバーレイアウトを選択してください。',
));
$wp_customize->add_setting( 'sidebar_setting', array(
'default' => 'right',
'sanitize_callback' => function ($input, $setting){
$input = sanitize_key( $input );
$choices = $setting->manager->get_control($setting->id)->choices;
return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}
));
$wp_customize->add_control( 'sidebar_setting', array(
'section' => 'sidebar_section',
'label' => 'サイドバー設定',
'description' => 'サイドバー位置を下記から選択して下さい',
'type' => 'radio',
'choices' => array(
'left' => '左',
'right' => '右')
));
// 外観→カスタマイズに画面の左右マージン量を設定するメニューを追加する
$wp_customize->add_section( 'margin_section', array(
'title' => '画面の左右余白設定',
'description' => '基本マージンは下記になります<br/>修正する場合は値を入れてください。',
'priority' => 82,
));
$wp_customize->add_setting( 'margin_pc', array(
'default' => 8,
'sanitize_callback' => 'absint'
));
$wp_customize->add_control('margin_pc', array(
'section' => 'margin_section',
'label' => 'PCマージン',
'description' => '修正値は<font color="red">%</font>です',
'type' => 'number',
));
$wp_customize->add_setting('margin_sm', array(
'default' => 2,
'sanitize_callback' => 'absint'
));
$wp_customize->add_control( 'margin_sm', array(
'section' => 'margin_section',
'label' => 'タブレットマージン',
'description' => '修正値は<font color="red">%</font>です',
'type' => 'number',
));
$wp_customize->add_setting('margin_xs', array(
'default' => '0',
'sanitize_callback' => 'absint'
));
$wp_customize->add_control( 'margin_xs', array(
'section' => 'margin_section',
'label' => 'スマホマージン',
'description' => '修正値は<font color="red">px</font>です',
'type' => 'number',
));
}
add_action( 'customize_register', 'add_custom_item',10,1);
■詳細は カスタマイズ画面にユーザ新規メニュを追加する方法を参照してください。