Integrated Tech Solutions

How to add new Setting fields in wordpress customizer

By - Admin, Updated on August 28, 2024

1. Create or Access Your Child Theme

Before making any changes, it’s best practice to use a child theme. This ensures that your modifications are preserved when the parent theme updates.

  • Creating a Child Theme:
    1. In wp-content/themes, create a new folder for your child theme.
    2. Inside this folder, create a style.css file with the following header:
    cssCopy code/* Theme Name: My Child Theme Template: parent-theme-folder */
    1. Create a functions.php file in the same directory.
  • Activating the Child Theme:
    • Go to Appearance > Themes in your WordPress dashboard and activate your child theme.

2. Add Custom Code to functions.php

Open the functions.php file in your child theme (or the functions.php file of your current theme) and add the following code to define your custom panels, sections, settings, and controls:

phpCopy codefunction my_custom_customizer_settings($wp_customize) {
    // Add a new panel
    $wp_customize->add_panel('my_custom_panel', array(
        'title'       => __('My Custom Panel', 'textdomain'),
        'description' => __('A custom panel for additional settings.', 'textdomain'),
        'priority'    => 160, // Order in the Customizer menu
    ));

    // Add a new section within the panel
    $wp_customize->add_section('my_custom_section', array(
        'title'    => __('My Custom Section', 'textdomain'),
        'panel'    => 'my_custom_panel', // This links the section to the panel
        'priority' => 10,
    ));

    // Add a setting
    $wp_customize->add_setting('my_custom_setting', array(
        'default'   => 'Default Value',
        'transport' => 'refresh', // or 'postMessage' for live updates
    ));

    // Add a control for the setting
    $wp_customize->add_control('my_custom_control', array(
        'label'    => __('My Custom Control', 'textdomain'),
        'section'  => 'my_custom_section',
        'settings' => 'my_custom_setting',
        'type'     => 'text', // Change this to 'textarea', 'checkbox', etc., depending on your need
    ));
}

add_action('customize_register', 'my_custom_customizer_settings');

3. Customize the Code

  • Panel: The add_panel() method creates a new panel. Panels are used to group multiple sections.
  • Section: The add_section() method creates a new section within a panel. Sections are used to group settings within a panel.
  • Setting: The add_setting() method creates a setting that holds the actual data.
  • Control: The add_control() method creates a user interface element for the setting.

4. Save and Test Your Changes

After saving the changes to functions.php, go to Appearance > Customize in your WordPress dashboard to see your new panels, sections, and controls.

5. Utilize Customizer Settings in Your Theme

To use the settings you’ve created, retrieve them with the get_theme_mod() function. For example:

phpCopy code$my_custom_value = get_theme_mod('my_custom_setting', 'Default Value');
echo esc_html($my_custom_value);

6. Add JavaScript for Live Preview (Optional)

For real-time updates in the Customizer, you can use JavaScript. Create a customizer.js file and enqueue it:

phpCopy codefunction my_custom_customizer_live_preview() {
    wp_enqueue_script('my-customizer', get_stylesheet_directory_uri() . '/js/customizer.js', array('customize-preview'), '1.0', true);
}
add_action('customize_preview_init', 'my_custom_customizer_live_preview');

In customizer.js:

javascriptCopy code( function( $ ) {
    wp.customize( 'my_custom_setting', function( value ) {
        value.bind( function( newValue ) {
            // Update the live preview with newValue
        } );
    } );
} )( jQuery );

Conclusion

Customizing the WordPress Customizer allows you to enhance the functionality and user experience of your theme or plugin. By following the steps outlined above, you can add custom panels, sections, and settings, providing a richer and more flexible customization experience for your users. Whether you’re creating a theme from scratch or extending an existing one, mastering the Customizer API is a valuable skill for any WordPress developer.

Feel free to experiment with different controls and settings to meet your specific needs. Happy customizing!

Keep Reading

👋 Hi, Find this Helpful? There is More

You Asked,
We made it!

fix japanese keyword hack

Step by Step Video Tutorials on trending topics in software development

Yes I am Curious »
custom widgets in wordpress

How to install wordpress on remote linux server using python script

To install WordPress on a remote Linux server using SSH, you can use a Python script with the paramiko library,...

Know More »

20 Interview Questions to get Hired as an Odoo Developer

Odoo Basic Interview Questions (Entry Level Jobs) Odoo Advanced Interview Questions (For Experienced job roles) Odoo Accounting Interview Questions

Know More »