Загружайте изображения с комментариями


РЕДАКТИРОВАТЬ: Я наконец-то получил правильный ответ; смотрите мой собственный ответ под этим постом для всех, кому это интересно.

После нескольких дней поисков и попыток снова и снова я действительно застрял. У меня есть клиент, который собирает отзывы клиентов на своем веб-сайте с помощью формы комментариев; все комментарии отображаются в виде отзыва клиента. Пока все хорошо.

Но поскольку эта компания много занимается путешествиями, ему нужно предоставить своим клиентам возможность загружать до пяти изображений с обзором.

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

Много чего перепробовал, но точка, в которой я застреваю снова и снова, - это обработка загрузки файлов для пользователя, не вошедшего в систему, который публикуется с формой комментария...

Любые мысли будут очень оценено по достоинству!

Author: Dennis Hunink, 2012-07-16

1 answers

РЕДАКТИРОВАТЬ: С некоторой помощью друга я нашел решение. Для всех заинтересованных: Используйте пользовательский тип сообщения, в моем случае comment_post. Затем загрузите изображения следующим образом:

$new_post = array(
'post_title'    => $title,
'post_content'  => $comment,
    'post_status'   => 'pending',// Choose: publish, preview, future, draft, etc.
    'post_type' => 'comments_post'  // Use a custom post type
);
//save the new post and return its ID
$pid = wp_insert_post($new_post); 
//Upload the file(s)
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');

if ($_FILES) {
    foreach ($_FILES as $file => $array) {
    //Check if the $_FILES is set and if the size is > 0 (if =0 it's empty)
    if(isset($_FILES[$file]) && $_FILES[$file]['size']>0){
    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
    echo '<div class="allert alert-error"><p>Upload error : ' . $_FILES[$file]['error'] . '</p></div>';
    $upload = false;
}else{
$upload = true;
}
if($upload == true){
    $attach_id = media_handle_upload( $file, $pid );
}
}
 }   
                                }//End if '$_FILES'

                            }//End if errornumbers
 2
Author: Dennis Hunink, 2012-07-25 20:35:32