Nếu bạn đang viết code cho phép upload lên thư viện media của WordPress thì nên tham khảo hàm bên dưới:
function hocwp_theme_upload_media_file_auto( $parent_post_id ) {
$file = '/path/to/file.png';
$filename = basename( $file );
$upload = wp_upload_bits( $filename, null, file_get_contents( $file ) );
if ( ! $upload['error'] ) {
$wp_filetype = wp_check_filetype( $filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_parent' => $parent_post_id,
'post_title' => preg_replace( '/\.[^.]+$/', '', $filename ),
'post_content' => '',
'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment( $attachment, $upload['file'], $parent_post_id );
if ( ! is_wp_error( $attachment_id ) ) {
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
}
}
}
Hàm wp_upload_bits sẽ giúp bạn upload tập tin vào đúng thư mục media của WordPress. Chúc bạn thành công.