WP Как создать новую запись из своей формы
Есть форма, нужно чтобы данные из этой формы направлялись в новую запись (на утверждение).
Как мне получить данные из этой формы и создать новую запись WordPress?
Какие должны быть шаги?
<form class="form-group" id="post-form" action="" enctype="multipart/form-data">
<!-- Пресса -->
<h2>Преса</h2>
<label for="name">Назва газети</label>
<input type="text" name="name" value="" class="form-control">
<br>
<label for="file">Завантажити матеріал(png, jpeg, jpg, не більше 5мб)</label>
<br>
<input type="file" name="file" value="">
<br><br>
<label for="editor">Хто був редактором (якщо відомо)</label>
<input type="text" name="editor" value="" class="form-control">
<br>
<label for="type">Рівень</label>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="central" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Центральний
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="local" value="option2">
<label class="form-check-label" for="exampleRadios2">
Місцевий
</label>
</div>
<div class="additional-form">
<label for="region">Область</label>
<input type="text" name="region" class="form-control">
<label for="city">Населенний пункт</label>
<input type="text" name="city" class="form-control">
<br>
<textarea name="textarea" rows="2" cols="80" value="" placeholder="Короткий опис" class="form-control" resize="none"></textarea>
<label for="date">Дата (опціонально)</label>
<input type="date" name="date" value="" class="form-control">
</div>
<br>
<input type="submit" class="btn btn-secondary" name="" value="Відправити">
</form>
Ответы (1 шт):
Алгоритм действий:
Доработать форму: добавить в нее одноразовое поле (nonce), данные должны отправляться POST-запросом (добавьте
method="POST"к тегу<form>).Подробнее про nonce:
Using Nonces
Что такое одноразовые числа (nonces) в WordPressОбработка данных формы.
После отправки формы, данные будут содержаться в массиве$_POST.
Самое важное: не доверять никаким данным, пришедшим от посетителя. Каждое поле должно очищаться и проверяться, перед тем как данные будут использованы.Подробнее про очистку и валидацию данных:
Data Sanitization/Escaping
Data ValidationСоздание записи.
Для создания новой записи используйте функциюwp_insert_post().
Подробнее о функцииwp_insert_post(): https://wp-kama.ru/function/wp_insert_post
Пример кода можно посмотреть здесь: https://wordpress.stackexchange.com/questions/15283/i-am-trying-to-create-a-simple-frontend-form-for-posting
Ну и, если, конечно, вам нужен результат здесь и сейчас, есть масса плагинов для создания форм. Один из лучших Contact From 7.