A default WordPress installation comes with a lot of goodies! Among them are some theme settings which makes it easy to customize several key areas in a theme.
These are the key areas
- Site Identity
- Site Icon
- Site Logo
- Header Image
- Background Image
- Nav menus
- Widget areas
- Homepage settings (choose from options below)
- Lastest Posts
- Static Page
- Additional CSS
Most custom themes have these settings in customize screen. But in some themes some of these settings may not be present. I have seen several themes like this while doing work for clients.
Also, if you are theme author and are starting a theme from scratch, you will find that some of these settings are not present by default.
What are these settings? Look at the highlighted key areas above.
Unlike other default settings, these settings need to be supported/activated through add_theme_support.
So to add support for site logo you would do something like below –
add_theme_support( 'custom-logo' );
For Background Image this code –
add_theme_support( 'custom-background' );
For Header Image
add_theme_support( 'custom-header' );
All these snippets goes to functions.php of course!
Note that each of these take optional arguments where you can pass default values and extra features for the setting.
Check out this link for additional arguments to add_theme_support