How to create a theme customizer ‘sub’ panel?

One of the cool new features of WordPress 4.0 is the add_panel() method. In my situation, i’d like to create a new panel for theme options, that’s very straight forward, but is it possible to create sub panels under the them options panel, for example one for the header, one for body and one for the footer? If so, how would I go about doing it?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You create Panels, and put Sections inside those Panels.

So if you have your panel:

$wp_customize->add_panel( 'panel_id', array(
 'priority'       => 10,
  'capability'     => 'edit_theme_options',
  'theme_supports' => '',
  'title'          => __('Theme Options', 'mytheme'),
  'description'    => __('Several settings pertaining my theme', 'mytheme'),
) );

Then you need to add your sections:
$wp_customize->add_section( 'header_settings', array(
    'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('Header Settings', 'mytheme'),
    'description'    =>  __('Header elements configuration', 'mytheme'),
    'panel'  => 'panel_id',
) );

$wp_customize->add_section( 'footer_settings', array(
    'priority'       => 10,
    'capability'     => 'edit_theme_options',
    'theme_supports' => '',
    'title'          => __('Footer Settings', 'mytheme'),
    'description'    =>  __('Footer elements configuration', 'mytheme'),
    'panel'  => 'panel_id',
) );

Regular sections are “sub” panels. Then you add your settings to your sections, and you are done.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments