参数
- $manager
-
(WP_Customize_Manager) WP_Customize_Manager 实例。
说明
“customize_register” 动作钩子用于自定义和操作WordPress Version 3.4中引入的主题自定义管理界面。该挂钩是主题自定义API的一个组件。
这个钩子允许您访问$wp_customize对象,它是WP_Customize_Manager类的一个实例。正是这个类对象控制主题定制器屏幕。
通常,$wp_customize对象只有4个方法需要在customize_register钩子内进行交互。
- WP_Customize_Manager->add_setting()
- 向数据库添加一个新的设置
- WP_Customize_Manager->add_section()
- 在"主题自定义"页面添加一个新的板块(即类别/组)
- WP_Customize_Manager->add_control()
- 创建一个HTML控件,管理员可以用它来改变设置。这也是你选择控件出现在哪个板块的地方
- WP_Customize_Manager->get_setting()
- 用来获取任何现有的设置,如果你需要修改一些东西(比如WordPress的一个默认设置)
例子:带有基本控件的定制器示例
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');
源码
更新日志
版本 | 描述 |
---|---|
3.4.0 | 开始引入 |
使用示例
请参阅以下代码以删除颜色板块
function wpdocs_deregister_section( $wp_customize ) { $wp_customize->remove_section( 'colors' ); } add_action( 'customize_register', 'wpdocs_deregister_section', 999 );