J'utilise le code ci-dessous pour télécharger une vignette de publication via le frontal. Cependant, il ne semble que télécharger la taille d'origine et non toutes les différentes tailles de vignettes, par exemple. 'moyen', 'grand' etc. Je reçois _wp_attached_file
et _thumbnail_id
entrés dans la base de données sans problème, mais pas avec d'autres métadonnées de taille. L'image est ajoutée au dossier de téléchargement correct, mais uniquement la taille d'origine et non les tailles standard supplémentaires.
Merci d'avance.
$uploaddir = wp_upload_dir();
$file = $_FILES['featured' ];
$uploadfile = $uploaddir['path'] . '/' . basename( $file['name'] );
move_uploaded_file( $file['tmp_name'] , $uploadfile );
$filename = basename( $uploadfile );
$wp_filetype = wp_check_filetype(basename($filename), null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
'post_content' => '',
'post_status' => 'inherit',
'menu_order' => $_i + 1000
);
$attach_id = wp_insert_attachment( $attachment, $uploadfile );
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
wp_update_attachment_metadata( $attach_id, $attach_data );
$post = array(
'ID' => esc_sql($current_post)
);
wp_update_post($post);
update_post_meta($current_post,'_thumbnail_id',$attach_id);
set_post_thumbnail( $current_post, $attach_id );
wp_generate_attachment_metadata génère des métadonnées pour une pièce jointe d'image. Il crée également une miniature et d’autres tailles intermédiaires de la pièce jointe en fonction des tailles définies dans Settings_Media_Screen.
wp_generate_attachment_metadata () se trouve dans wp-admin/includes/image.php.
/ * nécessite juste image.php avant wp_generate_attachment_metadata * /
require_once (ABSPATH. 'wp-admin/includes/image.php');
$ attach_data = wp_generate_attachment_metadata ($ attach_id, $ file);
j'espère que cela pourra aider!
Il semble que la seule façon de faire est d’utiliser media_handle_upload