WordPress shortcut to switch from Visual to Text mode and vice versa

There are no shortcuts, but you could add some by eg adding accesskeys to the editor html generated (in your theme’s “functions.php”):

function mytheme_edit_form_after_title( $post ) {
    ob_start();
}
function mytheme_edit_form_after_editor( $post ) {
    echo str_replace(
        array( 'id="content-tmce"', 'id="content-html"' ),
        array( 'id="content-tmce" accesskey="V"', 'id="content-html" accesskey="E"' ), // 'T' already used for 'Insert Read More tag'. 
        ob_get_clean()
    );
}
add_action( 'edit_form_after_title', 'mytheme_edit_form_after_title' );
add_action( 'edit_form_after_editor', 'mytheme_edit_form_after_editor' );

Update: unfortunately this doesn’t work on Chrome (and not very well on FF either), maybe the TinyMCE shortcut processing is interfering, so adding an explicit shortcut also seems to make it work better (append the following after the above):

add_action( 'wp_tiny_mce_init', function () {
    ?>
    <script type="text/javascript">
        function wpse245062_tiny_mce_init( ed ) {
            ed.on( 'init', function () {
                this.addShortcut( 'alt+shift+e', '', function () {
                    jQuery( '#content-html' ).click();
                    jQuery( '#content' ).focus();
                } );
            } );
        }
    </script>
    <?php
} );
add_filter( 'tiny_mce_before_init', function ( $mceInit ) {
    $mceInit['setup'] = 'wpse245062_tiny_mce_init';
    return $mceInit;
} );

Leave a Comment