Si está hablando de la respuesta, publiqué aqui
es simplemente cargar el archivo en un iframe para lograr "Ajax like".
Ahora, si ya tiene un formulario que maneja el envío de la publicación, simplemente puede agregar la entrada del campo del archivo de carga en algún lugar de su formulario:
<form ...
...
<input type="file" name="thumbnail" id="thumbnail">
...
...
</form>
asegúrese de que su formulario tenga el atributo enctype="multipart/form-data"
.
luego en la secuencia de comandos de procesamiento de formularios después de crear la publicación (suponiendo que está utilizando wp_insert_post();
)
mantener la ID de la publicación en una nueva var:
$new_post = wp_insert_post($post_array);
y después de eso agregue:
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);
}
y tu imagen se cargará y se guardará como miniatura de publicación.