如何获取WordPress中所有上传文件?现有SQL查询无法满足需求
获取WordPress所有上传文件的SQL查询方法
你原来的SQL只返回了未关联任何文章的附件(通过post_parent = 0筛选),所以会漏掉那些和文章绑定的媒体文件(比如特色图片、编辑器里插入的图片/下载文件)。要获取所有上传到WordPress的文件,只需要去掉post_parent = 0这个限制条件就行——因为所有通过媒体库上传的文件都会被作为attachment类型的记录存储,状态通常是inherit,不管有没有关联父文章。
修改后的基础SQL查询如下:
SELECT wp_posts.* FROM wp_posts WHERE wp_posts.post_type = 'attachment' AND wp_posts.post_status = 'inherit' ORDER BY wp_posts.post_date DESC
如果需要直接获取文件的存储路径,可以关联wp_postmeta表读取_wp_attached_file字段的值,示例SQL:
SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_date, wp_postmeta.meta_value AS file_path FROM wp_posts JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_posts.post_type = 'attachment' AND wp_posts.post_status = 'inherit' AND wp_postmeta.meta_key = '_wp_attached_file' ORDER BY wp_posts.post_date DESC
内容的提问来源于stack exchange,提问作者DolDurma
相关产品推荐
相关产品推荐

