web-dev-qa-db-de.com

Hinzufügen eines Post-Thumbnails zu einem programmgesteuert eingefügten Post

Ich möchte einen Beitrag programmgesteuert einfügen. Hier ist der Code zum Hinzufügen eines Beitrags:

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);

Wie füge ich ein ausgewähltes Bild zum Posten hinzu und starte es zum Testen?

3
10wtaylor

Das Post-Thumbnail wird nur als Post-Meta mit dem folgenden Schlüssel gespeichert: _thumbnail_id. Nachdem Sie den Beitrag eingefügt und die Beitrags-ID erhalten haben, können Sie das Beitrags-Meta für diesen Beitrag festlegen. Der $thumbnail_id ist nur die ID des Bildes, das Sie als Miniaturbild festlegen möchten, da ich Ihrer Frage nicht entnehmen kann, wie das aussehen soll.

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 );
4
helgatheviking

benutze die Funktion 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 );
   }
}
2
Aurovrata
 $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 );

Weitere Informationen finden Sie unter diesem Link http://codex.wordpress.org/Function_Reference/wp_insert_attachment

0
dipali