Быстрая отправка комментариев в WordPress сочетанием клавиш Ctrl+Enter без плагинов

Отправка комментариев в WordPress клавишами Ctrl + EnterПривет, друзья! Спонтанный пост сегодня. Социальные сети и различные мессенджеры тесно переплелись с нашей жизнь и уже сложно представить, а что было бы без них? Это удобно, быстро и понятно буквально для каждого человека. Корпорации вкладывают огромные деньги не только в дизайн, заказывая научные исследования о том, как тот или иной цвет влияет на человека и его восприятие, но и в удобство использования, юзабилити. И в повседневном пользовании мы постепенно привыкаем к определенным вещам, отсутствие которых уже можно считать неудобным.

Ко многим фишкам мы привыкли и хочется, чтобы они были везде и работали одинаково.

Везде, да не везде! Я не особо любитель соцсетей или мессенджеров, но приходится пользоваться, и в итоге даже я «деформировался». В частности, я настолько привык к сочетанию клавиш ctrl+enter для отправки сообщений (или любых других форм, которые можно и нужно отправлять), что подсознательно я сначала нажимаю эти клавиши и только потом думаю. Банально собираюсь отвечать на накопившиеся комментарий на моем блоге, отвечаю и сразу начинаю нервничать, когда после нажатия ctrl+enter ничего не происходит.

Сегодня я дошел до критической отметки, решил, что так больше жить нельзя, и надо сделать, чтобы при нажатии ctrl+enter отправлялся комментарий и на моем блоге!

Сказано – сделано. Делюсь решением.

В админке своего WordPress блога заходите в раздел «Внешний вид – Редактор», справа сбоку ищете шаблон «Комментарии (comments.php)» переходите к нему и ищите конец формы, то есть строку «</form>». Выше добавьте:

<script type="text/javascript">
document.getElementById("comment").onkeydown = function (moz_ev) {
    var ev = null;
 
    if (window.event){
        ev = window.event;
    }
    else{
        ev = moz_ev;
    }
 
    if (ev != null && ev.ctrlKey && ev.keyCode == 13) {
        document.getElementById("submit").click();
    }
}
</script>

После этого нажимаем «Обновить файл», а затем чистим весь кеш (у меня стоит плагин WP Super Cache и поэтому в шапке всегда есть кнопка «Удалить весь кеш»).

Обратите внимание!
Пока писал, подумал, что, скорее всего, у вас не будет нужной формы в шаблоне comments.php, а она будет вынесена в файлы движка, которые трогать не рекомендуется и которые при каждом обновлении перезаписываются. Только у меня шаблону уже больше 6 лет и все костыли так за ним и тянутся из года в год, из версии в версию…

Для вас я придумал намного более элегантное и универсальное решение. Оно подойдет для любых версий WordPress, для любых шаблонов и т.д. В админке заходите во «Внешний вид – Редактор», ищите шаблон «Функции темы (functions.php)» и в самый низ добавляйте функцию:

/*** ДОБАВЛЯЕМ наш JS в форму отправки комментария ***/
	function ctrlEnterPosting () {
		echo '<script type="text/javascript">
		document.getElementById("comment").onkeydown = function (moz_ev) {
		    var ev = null;
 
		    if (window.event){
			ev = window.event;
		    }
		    else{
			ev = moz_ev;
		    }
 
		    if (ev != null && ev.ctrlKey && ev.keyCode == 13) {
			document.getElementById("submit").click();
		    }
		}
		</script>';
	}
	add_action('comment_form', 'ctrlEnterPosting'); // добавляем функцию ctrlEnterPosting в форму комментирования

Нужный нам JS сам встроится в форму комментирования в нужное нам место. Не забудьте почистить кеш и можно идти тестировать!

А пока вы не реализовали у себя, можете потестировать у меня и сказать спасибо!

И помните – кто отправит комментарий по-олдскульному, т.е. нажав на кнопку «Отправить», тот лох )))

Оставить ответ