无FTP权限但拥有WordPress网站管理员权限时,如何下载网站代码?
能否仅通过WordPress管理员账号下载网站代码?
短答案:默认WordPress后台没有直接下载整个网站代码的功能,但借助一些变通方法,你可以间接获取网站的代码文件。下面是几种可行的方案:
使用备份插件(最推荐):这是安全且简便的首选方式。你可以在WordPress后台的「插件」→「添加新插件」中安装口碑可靠的备份类插件(比如UpdraftPlus、Duplicator)。这类插件支持将网站核心文件、主题、插件、上传资源等全部打包成压缩包,你直接在后台就能下载这个压缩包,解压后就能得到完整的网站代码文件。
手动编写简易打包脚本:如果不想依赖插件,你可以自己写一段PHP脚本实现目录打包。步骤如下:
- 进入后台「外观」→「主题编辑器」,选择当前主题的
functions.php(或者新建一个独立的PHP文件)。 - 插入一段利用
ZipArchive类打包网站根目录的代码(注意:你的主机需要支持ZipArchive扩展),示例代码如下:<?php // 仅允许管理员执行 if (!current_user_can('manage_options')) exit; $zip = new ZipArchive(); $zip_filename = 'site-code-' . date('Y-m-d') . '.zip'; $site_root = ABSPATH; if ($zip->open($zip_filename, ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) { $file_iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($site_root), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($file_iterator as $file) { if (!$file->isDir()) { $file_path = $file->getRealPath(); // 生成相对路径,避免压缩包带完整服务器路径 $relative_path = substr($file_path, strlen($site_root)); $zip->addFile($file_path, $relative_path); } } $zip->close(); // 触发浏览器下载 header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="' . $zip_filename . '"'); header('Content-Length: ' . filesize($zip_filename)); readfile($zip_filename); // 下载后删除服务器上的临时压缩包 unlink($zip_filename); exit; } else { echo '无法创建压缩包,请检查服务器是否支持ZipArchive扩展'; } ?> - 保存后,访问你的网站域名加上这个脚本的路径(比如
https://你的域名/wp-content/themes/当前主题名/你新建的脚本名.php),就能触发下载。关键提醒:下载完成后务必删除这个脚本,防止被恶意利用。
- 进入后台「外观」→「主题编辑器」,选择当前主题的
单个文件手动复制(不推荐):如果以上方法都不可行,你可以通过后台「外观」→「主题编辑器」或「插件」→「插件编辑器」,逐个打开文件并复制内容到本地保存。但这种方式极其繁琐,还无法获取上传目录里的图片、视频等资源,只能拿到主题、插件和核心的部分代码,效率极低。
额外注意事项
- 部分主机服务商可能会限制后台插件的备份功能,或者禁用
ZipArchive扩展,遇到这种情况可以联系主机商确认权限。 - 无论用哪种方法,操作完成后都要清理临时文件或卸载不必要的插件,避免留下安全隐患。
- 别忘了同步备份数据库,仅靠代码文件无法恢复完整的网站。
内容的提问来源于stack exchange,提问作者H D
相关产品推荐
相关产品推荐

