Ajax отправка комментариев в Wordpess без плагинов от Apocalypse
Данное решение выполнено на чистом jQuery. Предусмотрено всё, что я мог протестировать у себя на сайте: вывод ошибки, если комментарий не отправлен, правильная отправка ответа на комментарий, правильная подгрузка нового комментария, если до этого не было оставлено ни одного комментария
Установка:
В файле footer.php вашей темы в самый низ вставьте:
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 41 42 43 44 |
<script> // AJAX отправка комментариев WP от Apocalypse $ = jQuery; $(function() { var input = $('#commentform'), submit = $('#submit'); input.submit(function() { submit.attr('disabled', 'disabled').val('Отправка комментария...'); $.post('/wp-comments-post.php', input.serialize(), function(a) { }).done(function(a) { if($(a).text().indexOf('ОШИБКА') != -1) { submit.val('Ошибка отправки комментария').css('background-color', '#b3002d'); } else { submit.val('Комментарий успешно отправлен').css('background-color', '#549c47'); input.find('#comment').val('').focus(); if($('.comment-respond #cancel-comment-reply-link').size() != 0) { $('.comment-respond #cancel-comment-reply-link').click(); }; $.get(location.href, function(b) { if($('ol.comment-list').size() == 0) { $('#respond').before('<ol class="comment-list">' + $('ol.comment-list', b).html() + '</ol>'); } else { $('ol.comment-list').stop().fadeTo(500, 1).html($('ol.comment-list', b).html()); } }); }; setTimeout(function() { submit.removeAttr('disabled').removeAttr('style').val('Отправить комментарий'); }, 3000); }).fail(function() { submit.val('Ошибка отправки комментария'); setTimeout(function() { submit.removeAttr('disabled').removeAttr('style').val('Отправить комментарий'); }, 3000); }); return false; }); $('#commentform #comment').keydown(function(event) { if(event.keyCode == 13 && event.ctrlKey) { $('#commentform').submit(); return false; } }); }); </script> |
Если остались вопросы или пожелания - оставляйте их в комментариях 😃
P.S. В качестве бонуса ваши пользователи смогут отправлять комментарии при нажатии CTRL + ENTER