i would like to set an image as featured image of a post. I found this piece of code in the wordpress documentation, it saves the image in the upload directory but the image is not set as featured image of the post (37 in the code) anymore.

Can you please take a look ? thanks a lot

<?php
  $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, 37 );
  // you must first include the image.php file
  // for the function wp_generate_attachment_metadata() to work
  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 );
?>
有帮助吗?

解决方案

As i understand you want to use a image as a featured image on post right ? then why you are not using backend featured image browse option on post. brom there you can simply uplod image as featured and that featured image you can show with this code on your page the_post_thumbnail( $size, $attr );

其他提示

you need to add the following line at the end of your code :

// add featured image to post
add_post_meta($post_id, '_thumbnail_id', $attach_id); 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top