add_action( 'customize_register', 'theme_customize_register' );
/**
* Register individual settings through customizer's API.
*
* @param WP_Customize_Manager $wp_customize Customizer reference.
*/
function theme_customize_register( $wp_customize ) {
// You can first start by adding a section
$wp_customize->add_section(
'theme_options',
array(
'title' => __( 'Title of your section', 'domain' ),
'capability' => 'edit_theme_options',
'description' => __( 'Some description', 'domain' ),
'priority' => 160,
)
);
$wp_customize->add_setting(
'field_name',
array(
'type' => 'textarea',
'sanitize_callback' => 'theme_sanitize_text', // You can sanitize the text afterwards through this function
'capability' => 'edit_theme_options',
)
);
}
In the API docs you can find also what other fields you can use and how you can modify them.
In order to access your settings you can use
get_theme_mod('field_name');
Make sure to add this to a plugin or child theme.