Создание поста на основе данных, внесенных в форму через плагин Contact Form 7 в WordPress

Все чаще сталкиваюсь с задачами, когда необходимо записать данные из формы в новый пост. Например, функционал вопросов-ответов на сайте, когда строим его на основе «один вопрос/ответ — один пост». 

Можно сделать и на основе комментариев, но для меня достаточно сложным является изменение формы контактов для конкретной страницы + добавить новые поля к постам намного проще, чем к форме комментариев.

Делать функционал будем на основе плагина Form to Post и его хуков + стандартный функционал WordPress по добавлению постов.

Все действия производим в файле functions.php, который находится в корне вашей темы, добавляя хуки.

  1. Устанавливаем плагин Contact Form 7
  2. Устанавливаем плагин Form to Post. Его функционал позволяет работать и без хуков в functions.php, но если нужно заполнить определенные поля, метаинформацию, то хуки необходимы
  3. Создаем два хука, в одном из них указали в какую категорию размещать пост и второй — статус поста. Эти поля можно передать напрямую в форме, но это не безопасно, т.к. злоумышленник сможет поменять эти значения.
    Второй хук заполняет мета поля, задает заголовок поста.

В целом, можно минуя хуки указать просто название полей в форме, такие как post_title, post_content, meta_email (Будет занесено в мета поле email) и другие (читайте документацию плагина). Хуки позволяют более детально настроить записываемые данные.