2016-03-02 64 views
1

我在獲取精選圖片文章的URL時遇到了問題。我用wp_insert發佈​​了一個函數來發布數據併爲它們設置精選圖片。除了顯示精選圖片的網址之外,一切正常。這裏是我的代碼:wp_insert _post函數獲取精選圖片的url

$newpostname=$movie['title']; 
global $wpdb; 
$id_ofpost_name = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '$newpostname'"); 
$id_ofpost_title = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$newpostname'"); 
if ($id_ofpost_name || $id_ofpost_title) {echo 'post Exist';} 
else { 
// Register Post Data 
$post = array(); 
$post['post_status'] = 'publish'; 
$post['post_type']  = 'post'; // can be a CPT too 
$post['post_title'] = $newpostname; 
$post['post_content'] = ''; 
$post['post_author'] = 1; 

// Create Post 
$post_id = wp_insert_post($post); 
// Add Featured Image to Post 
$image_url = $movie['urlPoster']; 
$upload_dir = wp_upload_dir(); // Set upload folder 
$image_data = file_get_contents($image_url); // Get image data 
$filename = basename($image_url); // Create image file name 
// Check folder permission and define file location 
if(wp_mkdir_p($upload_dir['path'])) { 
    $file = $upload_dir['path'] . '/' . $filename; 
} else { 
    $file = $upload_dir['basedir'] . '/' . $filename; 
} 
// Create the image file on the server 
file_put_contents($file, $image_data); 
// Check image file type 
$wp_filetype = wp_check_filetype($filename, null); 

// Set attachment data 
$attachment = array(
    'post_mime_type' => $wp_filetype['type'], 
    'post_title'  => sanitize_file_name($filename), 
    'post_content' => '', 
    'post_status' => 'inherit' 
); 

// Create the attachment 
$attach_id = wp_insert_attachment($attachment, $file, $post_id); 

// Include image.php 
require_once(ABSPATH . 'wp-admin/includes/image.php'); 

// Define attachment metadata 
$attach_data = wp_generate_attachment_metadata($attach_id, $file); 

// Assign metadata to attachment 
wp_update_attachment_metadata($attach_id, $attach_data); 

// And finally assign featured image to post 
set_post_thumbnail($post_id, $attach_id); 
} 

插入後可以完美運行。問題是我想要得到特色圖片的wp_insert_post後的URL和特色圖片上傳。

任何線索?

回答

2

您已經擁有了固定的ID,所以你可以簡單地使用wp_get_attachment_link()

$featured_image_uri = wp_get_attachment_link($attach_id);