2

I use a default WordPress editor TinyMCE.

Maybe it is simple, but I lack that shortcut to switch from Visual to Text mode, and the opposite from Text to Visual.

enter image description here

I searched in here but haven't found a clue.

This would be handy when I am at the page bottom in WordPress Editor and in a need to change the mode.

The context what am I actually doing should be ignored. Just the shortcut would be great to share.

Please, let me know if I can improve the question better, or if there is anything more I can provide.

2

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;
} );
  • 1
    so what would be the shortcut key with this snippet? V and E? – Mark Kaplun Nov 4 '16 at 7:53
  • Sorry @bonger, I am not smart at the moment to understand this solution. Should there be some JavaScript involved? – prosti Nov 4 '16 at 13:29
  • See the accesskey link - shift + alt + key for FF/Chrome, alt + key for IE, control + alt + key for Mac. An alternate would be to use javascript. – bonger Nov 4 '16 at 14:18
  • I am in a textual mode @bonger, and the shortcut shift + alt + 1 is working. Just for you know. None of the shortcuts shift + alt + v or shift + alt + e are working. I appended functions.php with the code you provided. – prosti Nov 4 '16 at 15:54
  • Hi yes unfortunately I only tried it on FF, doesn't work on Chrome for some reason, I'll update the answer with a javascript workaround... – bonger Nov 6 '16 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.