如何获取WordPress站点wp-content/uploads文件夹的文件路径与文件名?
解决WordPress上传文件夹图片路径导出的几种方法
方法1:直接通过服务器文件管理器/FTP导出(最省心,无需代码)
- 登录服务器控制面板(比如cPanel),找到文件管理器,定位到
wp-content/uploads文件夹 - 按文件类型筛选出图片(只选.jpg/.png/.webp等格式),直接复制路径和文件名,或者右键导出文件列表为文本
- 用FTP工具(比如FileZilla)的话,连接服务器后找到uploads文件夹,右键选「导出列表」就能保存为包含路径的文本文件
方法2:WordPress临时脚本实现(无需PHP基础)
你找到的list_files()可以这么用,步骤简单:
- 在WordPress根目录新建一个临时文件,命名为
export-images.php - 复制下面的代码进去:
<?php // 加载WordPress环境 require_once('wp-load.php'); // 获取uploads文件夹的本地路径和网站URL $uploads = wp_upload_dir(); $local_dir = $uploads['basedir']; $base_url = $uploads['baseurl']; // 筛选图片文件 $all_files = list_files($local_dir); $image_ext = ['jpg', 'jpeg', 'png', 'gif', 'webp']; $image_list = []; foreach ($all_files as $file) { $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if (in_array($ext, $image_ext)) { // 转成网站可访问的URL路径 $image_url = str_replace($local_dir, $base_url, $file); $image_list[] = $image_url; } } // 生成下载文件 header('Content-Type: text/plain'); header('Content-Disposition: attachment; filename="wp-images.txt"'); echo implode("\n", $image_list); exit;
- 访问你的网站域名+
/export-images.php(比如https://你的域名.com/export-images.php),浏览器会自动下载包含所有图片URL的文本文件 - 用完立刻删除这个临时文件,避免安全风险
方法3:修复你的Python代码(解决登录失败问题)
你的原代码有几个逻辑问题,修改后可以正常运行:
import requests from bs4 import BeautifulSoup def save_image_urls(session, uploads_url): # 获取uploads页面内容 res = session.get(uploads_url) soup = BeautifulSoup(res.text, 'html.parser') # 提取所有图片链接 image_urls = [] for link in soup.find_all('a', href=True): href = link['href'] ext = href.split('.')[-1].lower() if ext in ['jpg', 'jpeg', 'png', 'gif', 'webp']: image_urls.append(href) # 保存到本地文本 with open('wp-images.txt', 'w', encoding='utf-8') as f: f.write('\n'.join(image_urls)) print(f"搞定!导出了{len(image_urls)}个图片路径到wp-images.txt") # 配置你的信息 wp_login_url = 'https://你的域名.com/wp-login.php' wp_admin_url = 'https://你的域名.com/wp-admin/' uploads_url = 'https://你的域名.com/wp-content/uploads/' username = '你的管理员账号' password = '你的管理员密码' with requests.Session() as s: # 先获取登录页面的隐藏字段 login_page = s.get(wp_login_url) soup = BeautifulSoup(login_page.text, 'html.parser') logincookie = soup.find('input', {'name': 'logincookie'}) # 组装登录数据 login_data = { 'log': username, 'pwd': password, 'wp-submit': '登录', 'redirect_to': wp_admin_url, 'testcookie': '1' } if logincookie: login_data['logincookie'] = logincookie['value'] # 执行登录 login_res = s.post(wp_login_url, data=login_data) # 检查登录状态 if wp_admin_url in login_res.url: print("登录成功,开始爬取图片路径...") save_image_urls(s, uploads_url) else: print("登录失败!检查账号密码或登录URL是否正确")
注意:
- 先安装依赖库:
pip install beautifulsoup4 - 如果你的uploads文件夹禁止直接访问(多数主机默认设置),这个方法可能失效,优先用前两种
方法4:Excel VBA实现(适配你的VBA基础)
打开Excel按Alt+F11打开VBA编辑器,插入模块后粘贴代码:
Sub ExportWPImagePaths() Dim mappedDrive As String, domainUrl As String, saveTxtPath As String Dim fso As Object, folder As Object, file As Object Dim fNum As Integer ' 配置信息:替换成你的映射驱动器和域名 mappedDrive = "Z:\" ' 先把uploads文件夹映射为本地Z盘 domainUrl = "https://你的域名.com/" saveTxtPath = ThisWorkbook.Path & "\wp-images.txt" ' 初始化文件系统对象 Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(mappedDrive & "wp-content\uploads") ' 打开文本文件准备写入 fNum = FreeFile() Open saveTxtPath For Output As #fNum ' 遍历筛选图片 For Each file In folder.Files Dim ext As String ext = LCase(fso.GetExtensionName(file.Name)) If ext = "jpg" Or ext = "jpeg" Or ext = "png" Or ext = "gif" Or ext = "webp" Then ' 转换为网站URL路径 Dim imgUrl As String imgUrl = Replace(file.Path, mappedDrive, domainUrl) Print #fNum, imgUrl End If Next file Close #fNum MsgBox "图片路径已导出到:" & saveTxtPath, vbInformation End Sub
使用前先把服务器的uploads文件夹映射为本地网络驱动器(Windows此电脑→映射网络驱动器),运行宏即可生成文本文件
内容的提问来源于stack exchange,提问作者Vangelis Atlidakis
相关产品推荐
相关产品推荐

