В новом Вордпрессе 3.2 появился полноэкранный режим редактирования страниц. В нем нет никаких элементов управления — только поле для контента. Кнопка «Сохранить» появляется, если подвинуть мышку. Я подумал, что было бы здорово сделать возможность сохранения изменений с помощью клавиатуры, стандартным сочетанием клавиш Ctrl+S (или ⌘+S на маке).

Плагин Register Ctrl+S

Скачать плагин, версия 0.1

За основу взят плагин Ctrl+S. Основное отличие — мой работает. А ещё он включает сохранение по хоткею практически на всех страницах Вордпресса. Точно работает на страницах:

  • Редактирования записи или страницы (включая полноэкранный режим) NEW
  • Редактирования комментария, ссылки, медиафайла. При нажатии сохраняются изменения и идет переход на родительскую страницу.
  • Редактирования меню, настроек, тем, плагинов

Одним словом, практически везде, где есть кнопка «Сохранить» в том или ином виде. Возможно также будет работать и на других страницах где есть кнопки, например на странице экспортирования блога, но это не так важно.

Установка

Скопируйте папку плагина в wp-content/plugins, и активируйте плагин через панель администрирования.

Без плагина

Если вы не любите возиться с плагинами и лишними файлами, можно использовать облегченную версию плагина и вставлять ее прямо в functions.php:

function registerCtlS () {
?>
<script type="text/javascript">
var registerCtrS = {
	attachEvent : function() {
		jQuery(document).keydown(registerCtrS.save);
	},
	save : function(e){
		if((e.which == 115 && e.ctrlKey) || (e.which == 19) || (e.metaKey && e.which == 83)) {
			var b = false;
			if (jQuery('#wp-fullscreen-body').is(":visible")) {
				b = jQuery('#wp-fullscreen-save input[type="button"]');
			}
			else if(jQuery('input[type="submit"]#save-post').length) {
				b = jQuery('input[type="submit"]#save-post');
			}
			else if(jQuery('input[type="submit"]#save').length) {
				b = jQuery('input[type="submit"]#save');
			}
			else if(jQuery('input[type="submit"]#submit').length) {
				b = jQuery('input[type="submit"]#submit');
			}
			else if(jQuery('input#save_menu_footer').length) {
				b = jQuery('input#save_menu_footer');
			}
			if(b != false) {
				b.click();
				return false;
			}
		}
	}
}
jQuery(document).ready(registerCtrS.attachEvent);
</script>
<?php
}
add_action('admin_print_scripts','registerCtlS',200);