如果我理解正确的话,每个帖子都有一个filemaker,而每个filemaker只有一张照片?结构有点不清楚。
总之,一种方法是最常用的media_sideload_image
如下所示。
然而media_sideload_image
WON\'T 使用本地文件(文件系统上的路径),因此需要将$文件[\'url\']更改为有效的url(http://yourhomepage.com/chris/pictures,例如)。如果你做不到,你需要使用wp_upload_bits 和wp_insert_attachment, 但这样做需要付出更多的努力。
function awesome_function($file, $post_id) {
require_once(ABSPATH . \'wp-admin\' . \'/includes/image.php\');
require_once(ABSPATH . \'wp-admin\' . \'/includes/file.php\');
require_once(ABSPATH . \'wp-admin\' . \'/includes/media.php\');
// upload image to server
media_sideload_image($file[\'url\'], $post_id);
// get the newly uploaded image
$attachments = get_posts( array(
\'post_type\' => \'attachment\',
\'number_posts\' => 1,
\'post_status\' => null,
\'post_parent\' => $post_id,
\'orderby\' => \'post_date\',
\'order\' => \'DESC\',)
);
// returns the id of the image
return $attachments[0]->ID;
}