The "switch" control

Learn how to create controls using Kirki

Back to Controls


The documentation site is currently being rewritten. If you can't find what you're looking for please check the github issues and ask for assistance there until the documentation rewrite is complete.

Switches provide a simple way to turn on/off options. They return a boolean so you can easily check their value in your code and act on them.

Switch controls are internally checkbox controls styled differently.

One main difference that switch controls have from checkbox and toggle controls is that on switches you can change their labels.

By default the labels are ON/OFF. To change them you can use the choices argument:

'choices' => array(
    'on'  => esc_attr__( 'Enable', 'textdomain' ),
    'off' => esc_attr__( 'Disable', 'textdomain' )


Switches have the benefit of allowing you to change their labels. In the example below we’ll be using ‘Enable’ and ‘Disable’ as labels. The default labels are “On” & “Off”, so if you don’t want to change them you can simply omit the choices argument.

Kirki::add_field( 'theme_config_id', array(
	'type'        => 'switch',
	'settings'    => 'my_setting',
	'label'       => __( 'This is the label', 'textdomain' ),
	'section'     => 'section_id',
	'default'     => '1',
	'priority'    => 10,
	'choices'     => array(
		'on'  => esc_attr__( 'Enable', 'textdomain' ),
		'off' => esc_attr__( 'Disable', 'textdomain' ),
) );


<?php if ( true == get_theme_mod( 'my_setting', true ) ) : ?>
	<p>Switch is ON</p>
<?php else : ?>
	<p>Switch is OFF</p>
<?php endif; ?>
Edit this page