Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save aaronsummers/40672c610a271da688245697ad280886 to your computer and use it in GitHub Desktop.
Save aaronsummers/40672c610a271da688245697ad280886 to your computer and use it in GitHub Desktop.
WordPress Theme Customizer Sample
<?php
function themename_customize_register($wp_customize)
{
$wp_customize->add_section('themename_color_scheme', array(
'title' => __('Color Scheme', 'themename'),
'priority' => 120
));
// =============================
// = Text Input =
// =============================
$wp_customize->add_setting('themename_theme_options[text_test]', array(
'default' => 'Arse!',
'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]'
));
// =============================
// = Textarea Input =
// =============================
$wp_customize->add_setting('themeslug_textarea_setting_id', array(
'capability' => 'edit_theme_options',
'default' => 'Lorem Ipsum Dolor Sit amet',
'sanitize_callback' => 'sanitize_textarea_field'
));
$wp_customize->add_control('themeslug_textarea_setting_id', array(
'type' => 'textarea',
'section' => 'custom_section', // // Add a default or your own section
'label' => __('Custom Text Area'),
'description' => __('This is a custom textarea.')
));
// =============================
// = 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]'
));
}
add_action('customize_register', 'themename_customize_register');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment