Как сделать свою контактную форму в WordPress

В wordpress лучше придерживаться стратегии: чем меньше плагинов, тем лучше, потому что каждый плагин создает дополнительную нагрузку на сервер. Конечно, бывают задачи, которые проще решить установкой плагина(либо задача требует особых умений, либо больших затрат времени). Но в случае с контактной формой очень просто обойтись без плагинов.

Итак, я предполагаю, что у нас уже есть готовая контактная форма, и осталось только прикрутить ее к wordpress. Пример создания контактной формы можно посмотреть здесь.
Что у нас есть:
contact.php и style.css(main.css)- файлы, отвечающие за внешний вид формы.
sendmail.php – обработка данных формы на стороне сервера и их отправка на email.

Через административную консоль wordpress заходим во внешний вид->редактор и находим в правой колонке шаблон страницы активной темы. Он называется page.php. Этот файл нужно скопировать и переименовать в contact.php.
Теперь в только что скопированном contact.php меняем название шаблона, например: Template Name: Для Связи
Вместо вывода контента нужно вставить код контактной формы. Файл sendmail.php изменений не требует.
Теперь оба файла нужно залить на сервер в каталог с активной темой: wp-content/themes/<название активной темы>
Для правильного отображения формы нужно добавить ее стили в style.css (в случае с моей формой достаточно добавить только авторские стили). Сделать это можно через консоль->внешний вид->редактор или через ftp.

Когда все файлы залиты на сервер достаточно создать новую страницу через консоль->Страницы и в качестве шаблона страницы выбрать Для Связи. Выбор шаблонов находится в блоке Атрибуты страницы, который расположен справа.
Теперь форма отображается как надо, и даже сообщения на почту приходят, но пользователь никак не информируется об ошибках ввода или о том, что его сообщение отправлено. Это происходит из-за того, что wordpress режет сессию созданную в sendmail.php. Бороться с этим помогает один хак. Чтобы не повторяться, вот ссылка на его описание.
Все, форма готова. Ее создание занимает определенное количество времени, зато не увеличивается нагрузка на сервер, и, кроме того, теперь можно менять внешний вид и функции формы по своему усмотрению.

2 thoughts on “Как сделать свою контактную форму в WordPress

  1. Скажите, а как сделать так, чтобы доступ к контактной форме был доступен только после регистрации. Очень надо, но ничего не получается. Перепробовал уже все известные варианты. Может быть вы знаете? Заранее спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">