티스토리에서 백업본을 받아서 워드프레스로 이전할 수 있습니다.
몇 개월 전까지 잘 작동했는데요. 지금도 잘 될지는 모르겠습니다. 클라우드웨이즈에서 PHP 버전을 7.4로 설정하고 HTML Import 2 플러그인을 설치하여 이전을 시도해 볼 수 있습니다. 호스팅에 따라 에러가 발생하면서 잘 진행되지 않을 수도 있습니다.
이전 후에 이미지 엑박 현상이 발생할 수 있습니다. 워드프레스에서 임포트를 시도하기 전에 이미지 경로를 사이트 주소를 포함한 전체 경로로 변경하면 이전 후에 에러가 발생하지 않습니다.
티스토리에서 워드프레스로 이전 시 이미지 절대 경로 변경 스트립트
아래는 제가 사용했던 PHP 스크립트입니다. 경로와 도메인 이름을 적절히 변경하여 사용해 보시기 바랍니다. 저는 tistory 폴더에 티스토리 백업 파일을 올려놓은 다음 이전을 시도했습니다. $dir 경로는 호스팅에 따라 적절히 변경하세요. SSH에 접속하여 경로를 확인할 수 있을 것입니다.
<?php
$dir = new DirectoryIterator('/public_html/tistory'); // Set initial directory to '/public_html/tistory'
// Loop through all sub-directories
foreach ($dir as $fileInfo) {
if($fileInfo->isDot() || !$fileInfo->isDir()) continue; // skip if not a directory or is '.' or '..'
$post_id = $fileInfo->getFilename(); // Get the directory name, i.e., post_id
// Now iterate over each file in the directory
foreach(new DirectoryIterator($fileInfo->getPathname()) as $file) {
if($file->isDot() || $file->isDir()) continue; // skip if not a file or is '.' or '..'
// Check if file is HTML
if(pathinfo($file->getFilename(), PATHINFO_EXTENSION) === 'html') {
// Read HTML file
$htmlContent = file_get_contents($file->getPathname());
// Use regex to replace the image src
$htmlContent = preg_replace_callback(
'#<img\s(.*?)src="(./img/([^"]*?))"(.*?)>#',
function($matches) use ($post_id) {
$imgName = $matches[3]; // the part of regex that captures the image name
return '<img ' . $matches[1] . 'src="https://exmaple.com/tistory/' . $post_id . '/img/' . $imgName . '"' . $matches[4] . '>';
},
$htmlContent
);
// Write the new HTML content back to the file
file_put_contents($file->getPathname(), $htmlContent);
// Print out a message for each file modified
echo "/{$post_id}/{$file->getFilename()} completed<br/>";
}
}
}
// Print out a message when all files are processed
echo "All completed";
?>
경우에 따라 위의 코드가 작동하지 않을 수 있습니다.
그런 경우 임포트 후에 DB에서 일괄 변경할 수도 있습니다.
UPDATE wp_posts
SET post_content = REPLACE(
post_content,
'src="./img/',
CONCAT('src="https://example.co.kr/tistory/', post_name, '/img/')
)
WHERE post_type = 'post';
이전 후에는 워드프레스에서 테마와 플러그인을 설치하여 적절히 세팅할 수 있습니다.
Yoast SEO나 Rank Math SEO와 같은 SEO 플러그인을 설치하여 세팅하면 SEO에 도움이 될 것입니다.
참고
https://avada.tistory.com/3046
https://avada.tistory.com/2897