WordPress.com到WordPress.org的迁移:如何下载wp内容文件夹?
让我们假设官方WordPress导入/导出插件不能在所有主机上以及本地主机上工作。假设可以导入帖子,但不能导入媒体。假设WordPress.com不提供从其网站免费下载所有媒体的可能性 目前托管在WordPress.com上 数以吨计的上传图像以如下方式托管: 等等 可能性1:有没有一个工具可以下载博客上的所有图片,同时保留文件夹结构(我还没有找到) 可能性2:是否可以使用XML导出文件从WordPress.com下载所有媒体(尤其是图像),但不需要官方的WordPress导入工具(无需为XML文件编写自定义解析器)WordPress.com到WordPress.org的迁移:如何下载wp内容文件夹?,wordpress,migration,Wordpress,Migration,让我们假设官方WordPress导入/导出插件不能在所有主机上以及本地主机上工作。假设可以导入帖子,但不能导入媒体。假设WordPress.com不提供从其网站免费下载所有媒体的可能性 目前托管在WordPress.com上 数以吨计的上传图像以如下方式托管: 等等 可能性1:有没有一个工具可以下载博客上的所有图片,同时保留文件夹结构(我还没有找到) 可能性2:是否可以使用XML导出文件从WordPress.com下载所有媒体(尤其是图像),但不需要官方的WordPress导入工具(无需为XM
通过对数据库进行简单的搜索/替换,可以替换数据库中的主机并上载提取的图像。也欢迎使用更好的解决方案。使用以下脚本解决了此问题。这可能对每个有相同问题的人都有帮助: (index.php)
从WordPress.com中选择XML导出文件(逐个)。使用相同的文件执行脚本,直到看到“成功”:
... 去下载他们所有!
(functions.php)
你可以据我所知,wordpress.com上禁止使用任何自定义代码:-p官方解决方案是“使用wordpress导入器”,但对大多数人来说,它根本不起作用,它的评级也很差:-/Hm。你至少可以下载一个数据库转储吗?在这种情况下,您可以设置本地主机副本(仅更新wp_选项'siteurl'和'home'),并获取所有媒体帖子的URL(post_type附件
)。您可以制作一个小PHP脚本来查询这些帖子,并一个接一个地下载图片。我会建议使用命令行oneliner下载所有图像。但是,我看到你想要一点脚本;不应使用超过3行的PHP。说到wordpress,通常情况就是这样。
<?php include('functions.php'); ?>
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="#" method="post" enctype="multipart/form-data">
Choose the XML export file from WordPress.com (one-by-one). Execute the script with the same file until you see "success":<br>
<input name="myfile" type="file" size="50" accept="text/*">
</p>
<button type="submit">... go download em all!</button>
</form>
</body>
</html>
<?php
if (isset($_FILES['myfile']) && ($_FILES['myfile']['error'] == UPLOAD_ERR_OK)) {
// $xml = simplexml_load_file($_FILES['myfile']['tmp_name']);
$filestr = file_get_contents($_FILES['myfile']['tmp_name']);
$matches = null;
$returnValue = preg_match_all('/https:\\/\\/mydomain.files.wordpress.com\\/[0-9]{4}\\/[0-9]{2}\\/[^<>\\/]+(\\.jpg|.png|.gif|.jpeg|.bmp)/',$filestr,$matches);
foreach($matches[0] as $image_url) {
$rep = str_replace("https://mydomin.files.wordpress.com",'',$image_url);
$save_path = "/images".$rep;
// if not image already downloaded
if(!file_exists(dirname(__FILE__).$save_path)) {
$img_only = strrchr($save_path,"/");
$path = dirname(__FILE__).str_replace($img_only,"",$save_path);
if(!is_dir($path)) {
mkdir($path, 0777,true);
}
file_put_contents(dirname(__FILE__).$save_path, fopen($image_url, 'r'));
}
}
// if not reached, repeat the script
echo "success";
}