Notez que cet article a été écrit il y a plus de 3 ans, mais il n'est pas forcément obsolète.
Lorsque l’on doit valider des actions ou enregistrer le travail très souvent, le raccourci Crtl+S ou Cmd+S s’avère très rapidement incontournable. Son utilisation dans le backend de wordPress permet de gagner beaucoup de temps et d’énergie.

Afin de permettre cela, il faut charger un fichier de script dans la partie admin de wordPress. On le charge dans le fichier functions.php du thème :
1 2 3 4 5 6 |
/* Script Backend */ add_action( 'admin_enqueue_scripts', 'xbs_enqueue_backend' ); function xbs_enqueue_backend() { ... wp_enqueue_script( 'admin-js', MY_THEME_URI.'/js/xbsCustomAdmin.js', array( 'jquery' ), false, true ); } |
On a bien-sûr défini : define( 'MY_THEME_URI', get_stylesheet_directory_uri() );
Ensuite, il suffit d’intercepter l’événement Ctrl+S dans une page d’administration ou dans l’éditeur tinyMCE (qui est en fait une iframe same origin).
On ajoute au fichier /js/xbsCustomAdmin.js :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
jQuery( document ).ready( function( $ ) { // La fonction qui clique var save = function() { var $save = $( '#save-post' ); if( $save.length ) $save.trigger( 'click' ); else $( 'input[type="submit"]' ).trigger( 'click' ); } /* Ctrl+S ou Cmd+S */ // Dans l'éditeur tinyMCE $( document ).on( 'tinymce-editor-init', function() { var editor = tinyMCE.activeEditor; editor.on( 'keydown', function( e ) { if( ( e.ctrlKey && e.which == 83 ) || ( e.metaKey == 115 && e.which ) ) { e.stopPropagation(); save(); return false; } }); }); // Dans la page $( document ).on ( 'keydown', function( e ) { if( ( e.ctrlKey && e.which == 83 ) || ( e.metaKey == 115 && e.which ) ) { e.stopPropagation(); save(); return false; } }); ... }); |
Et hop, le raccourci permet de faire de nombreuses actions d’enregistrement. En particulier, si un article est au stade de brouillon, il est sauvegardé, s’il est en ligne, il est mis à jour.
Super, ça marche nickel…
Merci pour ce truc, et comme cela on se passe d’installer un plugin supplémentaire.