Вопрос: Получение пользовательской категории сообщений из формы

Для начала. Я довольно новичок в php и нахожу свой путь.

Я создал форму (для сбора отзывов клиентов на переднем крае) и создаю черновик пользовательского типа поста под названием "отзывы". Теперь он работает (к сожалению, без Проверка подлинности только сценария PHP)

Теперь я получаю:

  • Заголовок сообщения
  • Публикация содержимого

Я хочу создать раскрывающийся список, содержащий две категории

  1. Intern
  2. host-company

и POST эти категории для моего пользовательского типа записи.

PHP-код ниже находится внутри моего functions.php:

if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_post") {//Do some minor form validation to make sure there is contentif (isset ($_POST['title'])) {    $title =  $_POST['title'];} else {    echo 'Please enter a  title';}if (isset ($_POST['description'])) {    $description = $_POST['description'];} else {    echo 'Please enter the content';}$tags = $_POST['post_tags'];//Add the content of the form to $post as an array$new_post = array(    'post_title'    => $title,    'post_content'  => $description,    'tags_input'    => array($tags),    'post_status'   => 'draft',           //do i need a comma after 'draft'?    'post_type' => 'testimonial'  //do i need a comma after 'testimonial'?);//save the new post$pid = wp_insert_post($new_post); header("Location: http://www.aipptraining.com.au/testimonial-submission-successful/");exit;}

код формы:

<div class="form-group" id=="testimonialform"><form action="" method="post" onsubmit="return validate();"><label for="title">Full name</label><br/><input class="form-control" id="formtitle" name="title" type="text"/><br/><label for="description">Your experience</label><br/><textarea class="form-control" id="description" cols="40" name="description" rows="4"></textarea><input class="form-control" tabindex="5" name="post_tags" size="16" type="hidden" value="Testimonial" /><br/><select name="categories" class="form-control" id="categories"><option value="">Select</option><option value="intern">Intern</option><option value="host-company">Host Company</option></select><br/><input class="btn btn-default" id="submit" tabindex="6" name="submit" type="submit" value="Submit" /><input name="action" type="hidden" value="new_post" /></form><!--?php wp_nonce_field( 'new-post' ); ?--></div>

Я был бы признателен, если бы Ваш ответ был очень конкретным, так как мое понимание PHP ограничено.

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

Спасибо, MJ

Ответы и комментарии:

Это в значительной степени то, что у вас уже есть, просто добавьте следующее после $ pid = wp_insert_post ($ new_post) ;:
#categories
  if (! empty ($ _POST ['category'])) {
    update_post_meta ($ pid, "_testimonials_category", полосы-черты ($ _POST ['category']));
 }

Я бы, вероятно, посоветовал бы вам изменить название этого из категорий, хотя на что-то более относительное, например, testimonials_categories
Тогда вы можете использовать:
$ selected_testimonial_category = get_post_meta ($ pid, '_ testimonials_category', true);

Что касается проверки, проверьте jQuery.validate
Создан 06-09-2016 11:50