2022年03月29日

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);

■詳細は カスタマイズ画面にユーザ新規メニュを追加する方法を参照してください。

 

アクションフック&関数
  • admin_init
  • admin_menu
  • after_setup_theme
  • customize_register
  • manage_pages_custom_column
  • manage_posts_custom_column
  • pre_get_posts
  • save_post
  • widgets_init
  • wp_enqueue_scripts
  • wp_head
  • add_editor_style()
  • add_post_type_support()
  • add_theme_support()
  • do_action()
  • get_post()
  • get_theme_mod()
  • register_nav_menu()
  • register_post_type()
  • register_sidebar()
  • register_taxonomy()
  • register_widget()
  • remove_action()
  • remove_editor_styles()
  • remove_theme_support()
  • set_post_thumbnail_size()
  • set_query_var()
  • show_admin_bar()
  • unregister_nav_menu()
  • unregister_widget()
  • wp_enqueue_script()
  • wp_enqueue_style()