首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从wp-上载中的文件恢复附件?

如何从wp-上载中的文件恢复附件?
EN

WordPress Development用户
提问于 2022-11-25 21:54:21
回答 1查看 33关注 0票数 0

我使用wordpress导入工具导入了一个文件,并下载了包含的附件。在一次成功的输入之后,我发现我的媒体库只包含3个文件。经过几个小时的研究,没有解决方案,我检查了数据库,发现只有3行类型‘附件’,这是显示在媒体库中的文件。但是,wp-content/uploads中的所有文件都是完整的。

我是否可以通过扫描wp-content/uploads目录中的每个文件并将必要的文件添加回数据库来恢复附件?

EN

回答 1

WordPress Development用户

发布于 2022-11-26 02:27:22

是的,你能做到的。首先设置一个循环,循环遍历上传目录中的所有图像。然后用创建类型附件的新帖子所需的数据构造一个数组:

代码语言:javascript
复制
$dir = new DirectoryIterator(wp_upload_dir()[0]);
foreach ($dir as $maybeFile) {
    if ($maybeFile->isFile()) {
        $filename = $maybeFile->getPathname();
        $wp_filetype = wp_check_filetype( $filename, null );
        $attachment = array(
            'post_mime_type' => $wp_filetype['type'],
            'post_title' => sanitize_file_name( $filename ),
            'post_content' => '',
            'post_status' => 'inherit'
        );
        $attach_id = wp_insert_attachment( $attachment, $filename );
        require_once( ABSPATH . 'wp-admin/includes/image.php' );
        $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
        wp_update_attachment_metadata( $attach_id, $attach_data );
    }
}

我使用了DirectoryIterator php类:https://www.php.net/manual/en/class.directoryiterator.php

关于如何将位于任意url上的图像上载到上载目录:以编程方式向媒体库添加图像的另一个堆栈溢出回答。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/411576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档