How to link into the WordPress Customizer
/**
* How to link into the WordPress Customizer
*/
Simple Link:
<a href="<?php echo esc_url( admin_url( 'customize.php' ) ); ?>">Link to Customizer</a>
Link to Panel:
$query['autofocus[panel]'] = 'nav_menus';
$panel_link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $panel_link ); ?>">Link to Panel</a>
Link to section:
$query['autofocus[section]'] = 'title_tagline';
$section_link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $section_link ); ?>">Link to Section</a>
Link to control (field)
$query['autofocus[control]'] = 'blogname';
$control_link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $control_link ); ?>">Link to Control</a>
Return somewhere else after the Customizer:
$query['return'] = admin_url();
$link_with_return = add_query_arg( $query, admin_url( 'customize.php' ) );
Link to control, the return to another page:
$query['autofocus[control]'] = 'blogname';
$query['return'] = admin_url( 'post-new.php' );
$link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $link ); ?>">Set title, then write post</a>
Set Preview page:
$query['url'] = site_url( '/news' );
$link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $link ); ?>">News Page in Preview</a>
All together:
$query['autofocus[section]'] = 'menu_locations';
$query['return'] = admin_url( 'post-new.php?post_type=page' );
$query['url'] = site_url( '/about-us' );
$link = add_query_arg( $query, admin_url( 'customize.php' ) );
?><a href="<?php echo esc_url( $link ); ?>">Craziness!</a>