Сохранение записи в WordPress по комбинации Ctrl+S

Ну почему все Wysiwyg редакторы такие убогие в плане использования хоткеев? Куда не глянь, либо горячие клавиши работают только в инглиш раскладке (а в русской по Ctrl+B закладки бл** выпадают), либо вообще не предусмотрены. И WP не исключение… я люблю писать статьи разворачивая окно редактора в полный экран. И для сохранения изменений и/или просмотра изменений нужно дотянуться курсором мшы к верхней панели, жмакнуть «Сохранить». А пальцы так и тянутся к комбинации Ctrl+S)

Сегодня я исправил это неудобство. Паралельно я повесил на Esc выход из полно экранного режима. Плагином не оформляю, т.к. там десяток строк кода.

jQuery(function() {

  var $=jQuery;

  if (/action=edit/.test(location.href)) {
    $('#content, #wp_mce_fullscreen').keypress(function(/*@var Event e */e) {

      // ~ ~ ~ ~ ~ Save action on <Ctrl> + <S>
      if (e.ctrlKey && e.which == 115) {
        if ($('#wp-fullscreen-body').css('display') == 'block') {
          $('#wp-fullscreen-save .button-primary').click();
          $(document).trigger('mousemove.fullscreen');
        } else if ($('#publish').length) {
          console.log('No Full');
          $('#publish').click();
        }
        e.preventBubble;
        return false;
      }

      // ~ ~ ~ ~ ~ Exit Full Screen on <Esc>
      if (e.keyCode == 27) {
        fullscreen.off();
      }

    });
  }

});

Чтобы при следующем обновлении WordPress изменения не затерлись, этот код желательно подключать хуком « и сохранить в файле. Дальше описание как это сделал я.

Создаем в каталоге темы папку custom, а в ней 2 файла backend.js и, на случай потребности в кастомизации стиля бэкенда — backend.css. Получилось так:

wp-content/themes/theme-name/custom/backend.js  # файл JS'скриптов
wp-content/themes/theme-name/custom/backend.css # файл стилей

Сохраняем код выше в файле backend.js.

Теперь опишем хук. Открываем theme-name/functions.php и добавляем код:

// Кастомный JS и CSS для backend'а
add_action( 'admin_head', 'my_custom_backend' ); 

function my_custom_backend() {
  echo  "\n" . '<script type="text/javascript" src="' . get_template_directory_uri() 
    . '/custom/backend.js"></script>' . "\n"
    . '<link rel="stylesheet" href="' . get_template_directory_uri() 
    . '/custom/backend.css" type="text/css" media="all" />' . "\n";
}

Готово! Теперь можно добавлять в админку любой функционал через JS-скрипты и задавать стили на CSS.