이전 글에서 티스토리에서 워드프레스로 이사하는 방법에 대하여 설명한 적이 있습니다.
위의 글에서는 html 파일에서 이미지 경로를 백업 파일에서와 같이 상대 경로로 되어 있는 상태에서 자바스크립트 코드를 사용하여 경로를 재지정하는 방식으로 설명되어 있습니다. 조금 다른 방법으로, html에서 파일 경로를 미리 절대 경로로 변경하면 임포트 후에 자바스크립트를 사용할 필요가 없을 것입니다.
티스토리에서 워드프레스로 이전하기: 이미지 경로를 절대 경로로 변경하기
티스토리 백업 파일에 포함된 html 파일에는 이미지들이 [**<img src="./img/love.jpg" alt="" />**]와 같이 상대 경로로 되어 삽입되어 있습니다.
이 상태에서 임포트할 경우, 몇 달 전에는 이미지들이 미디어 라이브러리에 임포트되었지만, 최근 시도해 보니 대부분의 이미지들이 미디어 라이브러리에 임포트되지 않았습니다.
그래서 임포트 후에 이미지 경로를 재지정하는 방식으로 앞서 설명했지만, 미리 이미지 경로를 절대 경로로 지정하는 것도 고려할 수 있을 것 같습니다.
이와 같이 이미지 경로를 상대 경로에서 절대 경로로 일괄 변경하려는 경우 다음과 같은 PHP 스크립트를 사용하여 시도해볼 수 있습니다.
<?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://example.com/tistory/' . $post_id . '/img/' . $imgName . '"' . $matches[4] . '>';
},
$htmlContent
);
// Write the new HTML content back to the file
file_put_contents($file->getPathname(), $htmlContent);
}
}
}
?>
상기 코드에서 경로와 사이트 URL을 적절히 수정하여 사용하시기 바랍니다.
실제로 위의 코드를 적용해보면 모든 HTML 파일에서 이미지 경로가 절대경로로 바뀌게 됩니다.
이 방법으로 미리 이미지 경로를 변경시키면 추후에 자바스크립트를 사용하여 이미지 경로를 재지정할 필요가 없게 될 것입니다.
티스토리 백업을 사용하여 워드프레스로 이전한 작업과 관련하여 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다. 저렴한 비용에 서비스를 제공하고 있습니다.😊😊😊
추가:
- sftp에 접속하여 워드프레스가 설치된 폴더에 파일을 생성하고(예: tistory.php) 위의 코드를 입력합니다.
- 경로는 이 글을 참고해보세요.
- 상기 코드에서 경로를 적절히 수정하세요.
- 브라우저에서 example.com/tistory.php (실제 파일명으로 변경)를 입력하면 코드가 실행됩니다.
- 실행되어도 화면에는 아무 내용이 표시되지 않을 것입니다. 에러가 있으면 에러가 표시됩니다. 에러가 표시될 경우 경로를 확인합니다.
- 완료 후에는 파일을 삭제합니다.
참고
https://avada.tistory.com/2279
https://avada.tistory.com/2741
https://avada.tistory.com/2995