티스토리에서 워드프레스 이전 시 카테고리 매핑 방법

워드프레스 정보를 제공하는 블로그 Avada 2023. 10. 18. 00:00 • 댓글:

티스토리 백업본을 다운로드하여 워드프레스에서 HTML Import 2 플러그인을 사용하여 티스토리 블로그 콘텐츠를 임포트할 수 있습니다. 

 

티스토리에서 워드프레스로 이사하기 (티스토리 백업 이용)

티스토리는 카카오 데이터센터 화재 이후 데이터 백업 기능이 추가되었습니다. 최근 티스토리에서 6월부터 티스토리 자체 광고 신설에 대한 공고를 올렸습니다. [안내] 6월부터 티스토리 자체

avada.tistory.com

이 플러그인을 사용하여 이전할 경우 카테고리를 가져오는 옵션은 없습니다. 대신 커스텀 필드(사용자 정의 필드)로 매핑하여 사용자 정의 필드 값을 카테고리로 지정하는 방법을 고려할 수 있습니다.

티스토리에서 워드프레스 이전 시 카테고리 매핑 방법

HTML Import 2 플러그인을 사용하는 경우 Categories & Tags 탭에서 모든 글을 동일 카테고리로 지정할 수 있는 옵션이 제공됩니다.

하지만 블로그에 여러 개의 카테고리가 사용될 수 있습니다. 이 경우 Custom Fields 탭에서 카테고리를 커스텀 필드로 지정할 수 있습니다.

티스토리에서 워드프레스 이전 시 카테고리 매핑 방법

위의 그림과 같이 설정하도록 합니다.

  • Custom field name: category (다른 이름으로 설정 가능)
  • Select filed by: HTML tag
  • Tag: p
  • Attribute: class
  • = Value: category

상기와 같이 커스텀 필드를 추가한 다음, 파일을 임포트하면 개별 글의 커스텀 필드에 카테고리 커스텀 필드가 표시됩니다. (참고로 여러 개의 커스텀 필드를 추가하려고 시도해 보았지만, 플러그인이 오래전에 만들어져서 업데이트가 안 되어서 그런지 두 개 이상의 커스텀 필드는 추가가 안 되는 것 같습니다.)

개별 포스트 편집 화면에서 사용자 정의 필드 패널이 표시되지 않으면 환경 설정에서 사용자 정의 필드 패널을 활성화하시기 바랍니다.

이제 테마(차일드 테마를 만들어 작업하세요) 함수 파일에 다음 코드를 추가합니다.

function update_post_category_based_on_custom_field( $post_id ) {
    // Check if this is a valid post. Avoids running on save of revisions.
    if ( !wp_is_post_revision( $post_id ) ) {
        // Get the value of the custom field 'category'.
        $custom_field_value = get_post_meta( $post_id, 'category', true );
        
        // If the custom field value is not empty, update the post's category.
        if ( !empty( $custom_field_value ) ) {
            // Convert custom field value to a slug (lowercase, replace spaces with hyphens)
            $category_slug = sanitize_title( $custom_field_value );
            // Update the post's category.
            wp_set_object_terms( $post_id, $category_slug, 'category', false );
        }
    }
}
add_action( 'save_post', 'update_post_category_based_on_custom_field' );

위의 코드를 추가한 경우, 글을 업데이트하면 category 커스텀 필드 값이 해당 글의 카테고리로 지정됩니다. 모든 글을 업데이트한 후에 카테고리가 지정되면 위의 코드를 삭제할 수 있습니다.

위의 작업을 수행하기 전에 반드시 백업을 철저히 하시기 바랍니다. 만약 문제가 있다면 백업본을 사용하여 되돌릴 수 있습니다.

참고로 이전 작업이 완료된 후에는 ftp/sftp로 업로드한 티스토리 백업 파일에서 html 파일은 삭제할 수 있습니다. SSH에 접속하여 다음 명령을 실행하여 해당 디렉터리(예: tistory) 내의 모든 Html 파일을 삭제하는 것이 가능합니다.

find . -type f -name "*.html" -delete

HTML Import 2 플러그인은 오랫동안 업데이트가 안 되었지만, 최신 워드프레스 버전에서 아직 잘 작동하는 것 같습니다. 티스토리에서 워드프레스로 이전하려는 경우 이 글을 참고하시기 바랍니다.

티스토리 블로그에서 자체 동영상을 업로드한 경우 이전 시에 에러가 발생할 수 있습니다. 그런 경우 파일을 임포트하기 전에 iframe 태그를 제거한 후에 임포트를 실시해야 올바르게 임포트가 됩니다.

예시:
찾기

.*<iframe[^>]*src="([^"]+)"[^>]*>.*<\/iframe>.*

바꾸기

$1

임포트 후에는 JavaScript를 사용하여 동영상을 표시할 수 있습니다.

// Select all elements with the class 'iframe-wrap'
var iframeWraps = document.querySelectorAll('.iframe-wrap');

// Loop through each element
iframeWraps.forEach(function(iframeWrap) {
  // Get the URL from the text content of the element
  var url = iframeWrap.textContent.trim();
  
  // Create a new iframe element
  var iframe = document.createElement('iframe');
  
  // Set the attributes of the iframe
  iframe.setAttribute('width', '640');
  iframe.setAttribute('height', '360');
  iframe.setAttribute('src', url);
  iframe.setAttribute('frameborder', '0');
  iframe.setAttribute('scrolling', 'no');
  iframe.setAttribute('allowfullscreen', '');
  
  // Clear the content of the iframeWrap element
  iframeWrap.textContent = '';
  
  // Append the iframe to the iframeWrap element
  iframeWrap.appendChild(iframe);
});

하지만 티스토리에서 업로드한 동영상은 외부에서 임베드하면 비공개 동영상으로 표시되면서 재생이 되지 않도록 차단된 것 같습니다.

티스토리에서 동영상을 별도로 다운로드하여 유튜브에 업로드한 후에 워드프레스에 삽입할 수 있습니다. 

참고

https://avada.tistory.com/3046

 

해외웹호스팅: 클라우드웨이즈 vs. 블루호스트 비교 (Cloudways vs. Bluehost)

저는 오랫동안 블루호스트(Bluehost)를 이용해 왔으며 2021년부터는 클라우드웨이즈(Cloudways) 웹호스팅 서비스도 함께 이용하고 있습니다. 현재 메인 워드프레스 블로그는 Bluehost에서 호스팅되고 있

avada.tistory.com

https://avada.tistory.com/2897

 

엘리멘터 무료 버전 vs. 프로 버전 비교

엘리멘터(Elmentor)는 500만 개가 넘는 사이트에 설치되어 사용되고 있는 인기 워드프레스 페이지 빌더 플러그인입니다. 엘리멘터는 무료 버전과 프로 버전으로 제공됩니다. Elementor 프로 버전에서

avada.tistory.com

https://avada.tistory.com/2299

 

GeneratePress 테마로 워드프레스 블로그 세팅 예시 (How to Customize GP)

워드프레스 테마 중에서 GeneratePress 테마가 속도가 빠르고 커스텀하기에 좋아서 저는 거의 대부분 사이트에 이 테마를 사용하고 있습니다. 이 테마를 사용하는 사이트/블로그가 점차 늘어나는

avada.tistory.com