Настройка формы Front Front Front Front

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

Я хочу, чтобы любое изображение, которое пользователь загружает, автоматически прикрепляется к сообщению и становится его образцом.

Может кто-нибудь объяснить, как это сделать с моим существующим кодом?

Я просмотрел все соответствующие вопросы на этом форуме, и ни одно из решений не работает для меня.

<? if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['insert_post'] )) { //check that our form was submitted //If it has, redirect to the dashboard ?><script language="javascript"><!-- location.replace("/dashboard/") //--> </script> <?php $title = $_POST['thread_title']; //set our title if ($_POST['thread_description']=="") { // check if a description was entered $description = "See thread title..."; // if not, use placeholder } else { $description = $_POST['thread_description']; //if so, use it } $tags = $_POST['thread_tags']; //load thread tags (custom tax) into array $post = array( //our wp_insert_post args 'post_title' => wp_strip_all_tags($title), 'post_content' => $description, 'post_category' => array('0' => $_POST['cat']), 'tax_input' => array('thread_tag' => $tags), 'post_status' => 'publish', 'post_type' => 'tsv_userpost' ); $my_post_id = wp_insert_post($post); //send our post, save the resulting ID $current_user = wp_get_current_user(); //check who is logged in add_post_meta($my_post_id, '_your_custom_meta', $var); //add custom meta data, after the post is inserted } else { if(is_user_logged_in()) { // check that the user is logged in before presenting form $current_user = wp_get_current_user(); ?> <div id="postbox"> <form id="new_thread" name="new_thread" method="post" action="" enctype="multipart/form-data"> <input class="required" type="text" id="thread_title" value="" tabindex="1" name="thread_title" placeholder="Thread Title" /> <textarea id="thread_description" name="thread_description" cols="80" rows="20" tabindex="2"></textarea> <div class="left"> <select name='cat' id='cat' class='postform required' tabindex="3"> <option value="" selected="selected">Choose:</option> <option class="writing" value="90">Writing</option> <option class="image" value="91">Image</option> <option class="video" value="92">Video</option> <option class="audio" value="94">Audio</option> <option class="link" value="95">Link</option> </select> </div> <input type="text" value="" tabindex="4" size="16" name="thread_tags" id="thread_tags" placeholder="Tags" /> <br /> <!-- images --> <label for="images">Featured Image:</label> <input type="file" name="user-image-featured" id="user-image-featured" size="20"> <!-- Submit button--> <br /> <input type="submit" value="Save Post" tabindex="5" id="thread_submit" name="thread_submit" class="thread-button" /> <input type="hidden" name="insert_post" value="post" /> <?php wp_nonce_field( 'new_thread' ); ?> </form> </div> <?php } else { echo 'please login'; } } ?> 

Solutions Collecting From Web of "Настройка формы Front Front Front Front"

вы можете сделать это, запустив функцию

 set_post_thumbnail( $my_post_id, $thumbnail_id ); 

помните, что вам нужно сначала обработать и вставить изображение в библиотеку:

 $uploaddir = wp_upload_dir(); $file = $_FILES[ ... whatever you have in your POST data ... ]; $uploadfile = $uploaddir['path'] . '/' . basename( $file ); move_uploaded_file( $file , $uploadfile ); $filename = basename( $uploadfile ); $wp_filetype = wp_check_filetype(basename($filename), null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $filename), 'post_content' => '', 'post_status' => 'inherit', 'menu_order' => $_i + 1000 ); $attach_id = wp_insert_attachment( $attachment, $uploadfile ); 

не тестировал скрипт – он адаптирован из версии, которую я создал. возможно, вы хотите изменить имя файла и тому подобное, но все это работает так:

Могу ли я исправить свой код?

 $uploaddir = wp_upload_dir(); $file = $_FILES[ ... whatever you have in your POST data ... ]; $uploadfile = $uploaddir['path'] . '/' . basename( $file['name'] ); move_uploaded_file( $file['tmp_name'] , $uploadfile ); $filename = basename( $uploadfile ); $wp_filetype = wp_check_filetype(basename($filename), null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => preg_replace('/\.[^.]+$/', '', $filename), 'post_content' => '', 'post_status' => 'inherit', 'menu_order' => $_i + 1000 ); $attach_id = wp_insert_attachment( $attachment, $uploadfile );