Загружаем изображение в медиатеку и прикрепляем к записи
Скопировано
$file = 'https://site.ru/image.jpg';
$parent_post_id = 555;
$filename = basename( $file );
$upload_file = wp_upload_bits( $filename, null, file_get_contents( $file ) );
if( ! $upload_file['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['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['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
}
}
Показать код
В первых двух строках надо указать правильный адрес к файлу и правильный ID записи, к которой его надо прикрепить. Причем в первой строке можно указать не только URL, но и полный путь к файлу, если его надо загрузить с локального сервера.