Si vous parlez de la réponse que j'ai publiée ici,
il vous suffit de télécharger le fichier dans un iframe pour obtenir une soumission "Ajax like".
Maintenant, si vous avez déjà un formulaire qui gère la soumission du post, vous pouvez simplement ajouter l'entrée de champ de fichier de téléchargement quelque part dans votre formulaire:
<form ...
...
<input type="file" name="thumbnail" id="thumbnail">
...
...
</form>
assurez-vous que votre formulaire a un enctype="multipart/form-data"
attribut.
puis dans votre script de traitement de formulaire après avoir créé la publication (en supposant que vous utilisez wp_insert_post();
) conservez l'ID de la publication dans une nouvelle var:
$new_post = wp_insert_post($post_array);
et après cela, ajoutez:
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);
}
et votre image sera téléchargée et enregistrée en tant que miniature de publication.
$pid = wp_insert_post($new_post);
Balisage HTML:
Téléchargement de l'image:
la source