如何以编程方式复制wordpress媒体库中的特定文件
how make duplicate of an specific file in wordpress media library programatically
我通过这个函数以编程方式将一些文件上传到 wordpress 媒体库:
media_handle_upload。在将文件添加到媒体库 returns 之后,此函数调用了一个名为 wordpress_media_attachment_id 的数字。现在我通过附件 ID 在媒体库中有了一些文件。
现在出于某些原因,我想以编程方式复制它们。
这意味着我想用新的附件 ID 复制这些文件。
现在请给我一个代码片段?
终于用这段代码解决了我的问题:
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 );
最后我有一个新的复制文件,其中包含新的附件 ID,名为 $image_id
我通过这个函数以编程方式将一些文件上传到 wordpress 媒体库: media_handle_upload。在将文件添加到媒体库 returns 之后,此函数调用了一个名为 wordpress_media_attachment_id 的数字。现在我通过附件 ID 在媒体库中有了一些文件。
现在出于某些原因,我想以编程方式复制它们。
这意味着我想用新的附件 ID 复制这些文件。
现在请给我一个代码片段?
终于用这段代码解决了我的问题:
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 );
最后我有一个新的复制文件,其中包含新的附件 ID,名为 $image_id