do_action( 'customize_register', WP_Customize_Manager $this )
Fires once WordPress has loaded, allowing scripts and styles to be initialized.
Parameters
- $this
-
(WP_Customize_Manager) WP_Customize_Manager instance.
More Information
The ‘customize_register‘ action hook is used to customize and manipulate the Theme Customization admin screen introduced in WordPress Version 3.4. This hook is a component of the Theme Customization API.
This hook gives you access to the $wp_customize object, which is an instance of the WP_Customize_Manager class. It is this class object that controls the Theme Customizer screen.
Generally, there are only 4 methods of the $wp_customize object that you will need to interact with inside the customize_register hook.
- WP_Customize_Manager->add_setting()
- This adds a new setting to the database.
- WP_Customize_Manager->add_section()
- This adds a new section (i.e. category/group) to the Theme Customizer page.
- WP_Customize_Manager->add_control()
- This creates an HTML control that admins can use to change settings. This is also where you choose a section for the control to appear in.
- WP_Customize_Manager->get_setting()
- This can be used to fetch any existing setting, in the event you need to modify something (like one of WordPress’s default settings).
Example: Customizer with basic controls sample
function themename_customize_register($wp_customize){ $wp_customize->add_section('themename_color_scheme', array( 'title' => __('Color Scheme', 'themename'), 'description' => '', 'priority' => 120, )); // ============================= // = Text Input = // ============================= $wp_customize->add_setting('themename_theme_options[text_test]', array( 'default' => 'value_xyz', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control('themename_text_test', array( 'label' => __('Text Test', 'themename'), 'section' => 'themename_color_scheme', 'settings' => 'themename_theme_options[text_test]', )); // ============================= // = Radio Input = // ============================= $wp_customize->add_setting('themename_theme_options[color_scheme]', array( 'default' => 'value2', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control('themename_color_scheme', array( 'label' => __('Color Scheme', 'themename'), 'section' => 'themename_color_scheme', 'settings' => 'themename_theme_options[color_scheme]', 'type' => 'radio', 'choices' => array( 'value1' => 'Choice 1', 'value2' => 'Choice 2', 'value3' => 'Choice 3', ), )); // ============================= // = Checkbox = // ============================= $wp_customize->add_setting('themename_theme_options[checkbox_test]', array( 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control('display_header_text', array( 'settings' => 'themename_theme_options[checkbox_test]', 'label' => __('Display Header Text'), 'section' => 'themename_color_scheme', 'type' => 'checkbox', )); // ============================= // = Select Box = // ============================= $wp_customize->add_setting('themename_theme_options[header_select]', array( 'default' => 'value2', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control( 'example_select_box', array( 'settings' => 'themename_theme_options[header_select]', 'label' => 'Select Something:', 'section' => 'themename_color_scheme', 'type' => 'select', 'choices' => array( 'value1' => 'Choice 1', 'value2' => 'Choice 2', 'value3' => 'Choice 3', ), )); // ============================= // = Image Upload = // ============================= $wp_customize->add_setting('themename_theme_options[image_upload_test]', array( 'default' => 'image.jpg', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control( new WP_Customize_Image_Control($wp_customize, 'image_upload_test', array( 'label' => __('Image Upload Test', 'themename'), 'section' => 'themename_color_scheme', 'settings' => 'themename_theme_options[image_upload_test]', ))); // ============================= // = File Upload = // ============================= $wp_customize->add_setting('themename_theme_options[upload_test]', array( 'default' => 'arse', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control( new WP_Customize_Upload_Control($wp_customize, 'upload_test', array( 'label' => __('Upload Test', 'themename'), 'section' => 'themename_color_scheme', 'settings' => 'themename_theme_options[upload_test]', ))); // ============================= // = Color Picker = // ============================= $wp_customize->add_setting('themename_theme_options[link_color]', array( 'default' => '#000', 'sanitize_callback' => 'sanitize_hex_color', 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'link_color', array( 'label' => __('Link Color', 'themename'), 'section' => 'themename_color_scheme', 'settings' => 'themename_theme_options[link_color]', ))); // ============================= // = Page Dropdown = // ============================= $wp_customize->add_setting('themename_theme_options[page_test]', array( 'capability' => 'edit_theme_options', 'type' => 'option', )); $wp_customize->add_control('themename_page_test', array( 'label' => __('Page Test', 'themename'), 'section' => 'themename_color_scheme', 'type' => 'dropdown-pages', 'settings' => 'themename_theme_options[page_test]', )); // ===================== // = Category Dropdown = // ===================== $categories = get_categories(); $cats = array(); $i = 0; foreach($categories as $category){ if($i==0){ $default = $category->slug; $i++; } $cats[$category->slug] = $category->name; } $wp_customize->add_setting('_s_f_slide_cat', array( 'default' => $default )); $wp_customize->add_control( 'cat_select_box', array( 'settings' => '_s_f_slide_cat', 'label' => 'Select Category:', 'section' => '_s_f_home_slider', 'type' => 'select', 'choices' => $cats, )); } add_action('customize_register', 'themename_customize_register');
Source
Changelog
Version | Description |
---|---|
3.4.0 | Introduced. |
© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/hooks/customize_register