Remove duplicate attachments

时间:2013-01-20 作者:Omar Abid

情况是这样的:我有一个自动脚本,可以上传附件并将每个附件链接到特定的帖子。由于错误,脚本运行了多次,我有以下内容

媒体库中针对单个文件的多个附件帖子(不同的附件帖子具有相同的文件URL)。

这些附件中有一个实际上是附在帖子上的。

我想做的显然是清理媒体库。我需要在不删除文件的情况下删除附件帖子,并且确保我不删除那些实际附加到他们帖子的帖子。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

function get_attachment_files(){
$args = array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => -1,
    \'post_status\' => null,
    \'post_parent\' => 0
);
$attachments = get_posts($args);
 if ($attachments) {
    foreach ($attachments as $post) {
        setup_postdata($post);
        wp_delete_post( $post->ID );
    }
 }
}
add_action(\'admin_init\',\'get_attachment_files\');
改编自:http://wpsnipp.com/index.php/functions-php/list-all-unattached-files-in-media-library/

不过我会小心的,因为我不确定它是否也会删除这些图片。事实上,我认为会,但我把它当作饲料扔出去,而不是一个完美的解决方案。

如果你深入研究wp_delete_attachment 有一个名为wp_delete_file 您可能可以使用该功能从一个组成的目录中删除文件,即不删除您的实际文件,但我不能确定。

结束

相关推荐

how to edit attachments?

在将例如文件附加到帖子时,如何在事后编辑/删除它们?在帖子编辑器中找不到任何内容。谢谢