我做了一个函数,在WP中添加一个图像,并将其附加到右侧的帖子上。其特殊性在于输入的是一个url以获取图片。我的问题是什么时候wp_insert_attachment()
在运行时,我在介质中得到了一个副本,而第二个没有连接。
My function
function save_media_from_url( $image_url, $post_content = "", $post_id = null ){
$upload_dir = wp_upload_dir();
$image_data = file_get_contents( $image_url );
$filename = basename( $image_url );
if ( wp_mkdir_p( $upload_dir[\'path\'] ) ) {
$file = $upload_dir[\'path\'] . \'/\' . $filename;
}
else {
$file = $upload_dir[\'basedir\'] . \'/\' . $filename;
}
file_put_contents( $file, $image_data );
$wp_filetype = wp_check_filetype( $filename, null );
$attachment = array(
\'post_mime_type\' => $wp_filetype[\'type\'],
\'post_title\' => sanitize_file_name( $filename ),
\'post_content\' => $post_content,
\'post_status\' => \'inherit\'
);
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
var_dump( $attach_id );
wp_die();
require_once( ABSPATH . \'wp-admin/includes/image.php\' );
$attach_data = wp_generate_attachment_metadata( $attach_id, $file )
wp_update_attachment_metadata( $attach_id, $attach_data );
return $attach_id;
}
OUTPUT FOR DEBUGGING
int(188880) <-- attachment id for the first saved ( linked to the right post )
图像保存两次。数据库中的第一条记录链接到右侧的帖子,这是返回id,但第二条记录已保存,没有任何帖子链接。
有人知道怎么解决这个问题吗?