There is no denying that the WordPress Theme Customisation API is an awesome addition (added in version 3.4) however there are some things that it can’t do out of the box and if you’re not a super developer capable of creating your own customize classes to create custom sections and settings with textual descriptions then you’re fresh out of luck.
The Theme Customisation API has support for a description attribute you can add to your sections like so:
$wp_customize->add_section( ‘logo’ , array(
‘title’ => __(‘Logo’, ‘themes;ig’),
‘priority’ => 29,
‘description’ => __(‘Change your themes logo here. If no logo image is uploaded, your site name in text will be displayed instead.’, ‘themeslug’)
Now you could be forgiven for thinking the description argument will add in a visible description to your setting section, but it doesn’t. What the description argument adds is a title to the heading of your settings section that shows when the mouse hovers and waits a second or so. If you want to display text with instructions visible at all times there is no option for that by default so for the sake of finding a quick and functional solution I recently came up with a hacky solution that uses the description argument.
You add in your section descriptions like you would expect too and then drop this code into the bottom of your theme’s functions.php file and presto, you have descriptions that will display when you expand them.