Wenn Sie über die Antwort sprechen, die ich hier gepostet habe, wird
einfach eine Datei in einem Iframe hochgeladen, um "Ajax like" Submit zu erreichen.
Wenn Sie bereits ein Formular haben, das die Post-Übermittlung behandelt, können Sie die Eingabe des Upload-Dateifelds einfach irgendwo in Ihr Formular einfügen:
<form ...
...
<input type="file" name="thumbnail" id="thumbnail">
...
...
</form>
Stellen Sie sicher, dass Ihr Formular ein enctype="multipart/form-data"
Attribut hat.
wp_insert_post();
Halten Sie dann in Ihrem Formularverarbeitungsskript nach dem Erstellen des Beitrags (vorausgesetzt, Sie verwenden ) die Beitrags-ID in einer neuen Variable fest:
$new_post = wp_insert_post($post_array);
und danach hinzufügen:
if (!function_exists('wp_generate_attachment_metadata')){
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) {
if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
return "upload error : " . $_FILES[$file]['error'];
}
$attach_id = media_handle_upload( $file, $new_post );
}
}
if ($attach_id > 0){
//and if you want to set that image as Post then use:
update_post_meta($new_post,'_thumbnail_id',$attach_id);
}
und Ihr Bild wird hochgeladen und als Post-Thumbnail gespeichert.
$pid = wp_insert_post($new_post);
HTML-Markup:
Bild hochladen:
quelle