Je veux insérer post par programmation, voici donc le code pour en ajouter un:
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
Comment ajouter une image à la publication et la déclencher pour la tester?
La vignette de publication est simplement enregistrée en tant que publication meta avec la clé: _thumbnail_id
. Ainsi, après avoir inséré le message et obtenu l'identifiant du message, vous pouvez définir la méta du message pour ce message. Le $thumbnail_id
est simplement l'ID de l'image que vous souhaitez définir comme vignette, à vous de décider puisque je ne peux pas dire à partir de votre question ce que cela devrait être.
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
if( ! is_wp_error( $post_id ) )
update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id );
utilisez la fonction set_post_thumbnail
,
//$file is the path to your uploaded file (for example as set in the $_FILE posted file array)
//$filename is the name of the file
//first we need to upload the file into the wp upload folder.
$upload_file = wp_upload_bits($filename, null, @file_get_contents($file));
if(!$upload_file['error']) {
//if succesfull insert the new file into the media library (create a new attachment post type)
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_parent' => $post_id,
'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
'post_content' => '',
'post_status' => 'inherit'
);
//wp_insert_attachment( $attachment, $filename, $parent_post_id );
$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], $post_id );
if (!is_wp_error($attachment_id)) {
//if attachment post was successfully created, insert it as a thumbnail to the post $post_id
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
//wp_generate_attachment_metadata( $attachment_id, $file ); for images
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
set_post_thumbnail( $post_id, $attachment_id );
}
}
$wp_filetype = wp_check_filetype(basename($filename), null );
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, $post_id );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
Pour plus d'informations, voir ce lien http://codex.wordpress.org/Function_Reference/wp_insert_attachment