Как сделать копию конкретного файла в медиатеке WordPress программно

Я программно загрузил некоторые файлы в медиатеку WordPress с помощью этой функции:
media_handle_upload. эта функция после добавления файла в медиа библиотеку возвращает число wordpress_media_attachment_id . Теперь у меня есть некоторые файлы в медиа-библиотеке через их идентификаторы вложений.

теперь по некоторым причинам я хочу сделать их дублирование программно.

Это означает, что я хочу сделать копию этих файлов с новым идентификатором вложения.

теперь, пожалуйста, дайте мне код фрагмента?

-6

Решение

наконец решил мою проблему с помощью этого кода:

require_once( ABSPATH . 'wp-admin/includes/image.php' );
$wp_upload_dir = wp_upload_dir();
$imgMeta = wp_get_attachment_metadata( $wordpress_media_attachment_id );
$imgMime = $imgMeta['sizes']['thumbnail']['mime-type'];
$absolutePath = "$wp_upload_dir[basedir]/$imgMeta[file]";

$name = basename($imgMeta['file']);
do{
$rnd = mt_rand();
$name2 = "_$rnd$name";
$path2 = "$wp_upload_dir[path]/$name2";
} while (file_exists($path2));
@copy($absolutePath,$path2);

$attachment = array(
'guid'=> "$wp_upload_dir[url]/$name2",
'post_mime_type' => $imgMime,
'post_title' => $name2,
'post_content' => '',
'post_status' => 'inherit'
);
$image_id = wp_insert_attachment($attachment, $path2);
$attach_data = wp_generate_attachment_metadata( $image_id, $path2 );
wp_update_attachment_metadata( $image_id, $attach_data );

и, наконец, у меня есть новый дублированный файл с новым идентификатором вложения под названием $ image_id

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]