J'essaie de générer des miniatures sur mon serveur qui sont téléchargées par un plugin. Il télécharge toutes les images dans un répertoire. J'essaie de cibler ces fichiers, puis de créer une vignette basée sur img_resize, mais je n'ai aucune chance. Finalement, j'insérerai les pouces dans la médiathèque et dans la méta de l'utilisateur, mais je ne peux même pas produire une vignette pour le moment, c'est donc la première tâche à accomplir!
Voici mon code simple jusqu'à présent:
require_once(ABSPATH . '/wp-admin/includes/media.php');
require_once(ABSPATH . '/wp-admin/includes/image.php');
$file = 'http://www.mysite.org/uploads/uploaddir/2012/02/bill.jpeg';
$max_w = 200;
$max_h = 200;
$crop = true;
$filePathInfo = pathinfo($file);
$fileName = $filePathInfo['basename'];
$wpUploadPath = wp_upload_dir();
$destpath = $wpUploadPath['basedir'].'/'.$fileName;
image_resize( $file, $max_w, $max_h, $crop );
J'ai aussi essayé d'utiliser le $destpath
et rien ne se passe. Aucune vignette n'est générée. Est-ce que je pense à cela de manière incorrecte?
Toute lumière que quiconque pourrait apporter sur cette situation serait grandement appréciée.
Merci!
Tre
NOTE RÉSOLU: C'est le code qui a finalement fonctionné pour moi. J'utilisais auparavant l'URI pour définir l'image_resize. Pas le répertoire absolu.
$wpUploadDir = wp_upload_dir();
$baseDir = $wpUploadDir['basedir'];
$fileName = 'bill.jpg';
$filePath = $baseDir . "/" . $fileName;
$wp_filetype = wp_check_filetype($filePath, null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => $fileName,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filePath );
require_once(ABSPATH . 'wp-admin/includes/image.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $filePath );
wp_update_attachment_metadata( $attach_id, $attach_data );
image_resize($filePath, 200, 200, true, '200x200');
En regardant votre code, il semble que le fichier sera recherché dans .../wp-content/uploads/bill.jpeg
. Vous devrez également inclure le aaaa/mm. Je voudrais utiliser ceci:
require_once(ABSPATH . '/wp-admin/includes/media.php');
require_once(ABSPATH . '/wp-admin/includes/image.php');
$file = 'http://www.mysite.org/uploads/uploaddir/2012/02/bill.jpeg';
# Function reference
# image_resize ( $file, $max_w, $max_h, $crop = false, $suffix = null, $dest_path = null, $jpeg_quality = 90 )
$wpUploadPath = wp_upload_dir();
$fileName = preg_replace('/^.*?\/(\d{4})\/(\d\d)\/(.*)$/', $wpUploadPath['basedir'].'/$1/$2/$3', $file);
image_resize( $fileName, 200, 200, true, '200x200' );
Faites un tourbillon et laissez-moi savoir comment vous vous en sortez!
Si vous avez des images sur votre serveur que vous souhaitez ajouter à WordPress, puis créez des tailles intermédiaires de vignettes:
Si nous savions quel plug-in vous utilisez pour télécharger des images et quelle était l'utilisation envisagée de ces images, nous pourrions vous fournir une réponse plus précise pour votre cas d'utilisation.