J'ai créé un script/page PHP rapide qui utilise la fonction wp_insert_post () pour insérer directement un message. Et cela fonctionne très bien. La publication que j'ajoute manuellement contient une image. Je télécharge donc d'abord cette image manuellement/par programme dans le dossier "/ uploads /" respectif dans lequel toutes mes images sont enregistrées (en fait, je n'utilise pas de sous-répertoires year/month). Le contenu de l'article contient du texte normal, ainsi que le code HTML nécessaire pour pointer vers l'image, par exemple.
<p>This is a manually created post for my blog, there should be a picture below this line of text. Thanks for visiting.</p>
<img src="http://www.mysite.com/wp-content/uploads/image.jpg">
Le message semble bien (y compris l'image). Mais mes 2 problèmes sont:
1) L’image que j’ai téléchargée ne se trouve pas dans la médiathèque. Comment l’obtenir ici?
2) J'aimerais ajouter une "image/vignette en vedette" à la même image, mais je ne sais pas quelle fonction est utilisée pour effectuer cet appel? J'espérais trouver une fonction similaire à insert_featured_thumbnail ("/ wp-content/uploads/image.jpg", $ pid)
Quelqu'un a-t-il une idée?
Merci d'avance.
WizzKidd
Référence de fonction/wp insérer une pièce jointe
$image_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
Cette fonction renverra un identifiant d'image que vous pourrez utiliser pour l'image sélectionnée.
update_post_meta($post_id, "_thumbnail_id", $image_id);
Merci pour votre réponse. C'était parfait. J'utilise maintenant le code suivant:
//SAVE THE POST - $new_post is my array that conforms to the necessary requirements
$pid = wp_insert_post($new_post);
//SET MY TAGS UP PROPERLY - $tagsArray contains an array of tags
wp_set_post_tags($pid, $tagsArray);
//ADD IMAGE TO IMAGE-GALLERY AND return $image_id - $wp_image is my image filename
$wp_filetype = wp_check_filetype(basename($wp_image), null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', $myImageTitle),
'post_content' => '',
'post_status' => 'inherit'
);
$serverFullPath = '/home/user/public_html/mysite/wp-content/uploads/';
$image_id = wp_insert_attachment($attachment, $serverFullPath . $wp_image, $pid);
//ADD THE MEDIA GALLERY IMAGE AS A FEATURED IMAGE FOR THIS POST
update_post_meta($pid, "_thumbnail_id", $image_id);
//POST THE POST
do_action('wp_insert_post', 'wp_insert_post');
J'ai vérifié la Galerie de médias et mon image est là :) bien qu'elle ne spécifie pas l'auteur du fichier contrairement aux autres images qui montrent 'admin'.
Merci de votre aide.