Si está hablando de la respuesta que publiqué aquí,
simplemente está cargando el archivo en un iframe para lograr el envío "Me gusta Ajax".
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 enctype="multipart/form-data"
atributo.
luego, en su secuencia de comandos de procesamiento de formularios, después de crear la publicación (suponiendo que esté usando wp_insert_post();
) mantenga 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 su imagen se cargará y guardará como miniatura de publicación.
$pid = wp_insert_post($new_post);
Marcado HTML:
Subiendo la imagen:
fuente