워드프레스 자식 테마(차일드 테마)에 대해 이해하기

2018. 1. 12. 09:00 | 댓글 6

워드프레스 차일드 테마를 만들어야 하는 이유

워드프레스에서 자식 테마(차일드 테마, 하위 테마라고도 함)를 만들지 않고 테마 자체를 수정하는 경우를 간혹 목격합니다.

그런 경우, 테마가 업데이트되면 부모 테마(원래 테마)에서 수정한 내용은 모두 초기화가 되므로 수정한 내용을 다시 적용해야 하는 번거로움이 있습니다.

업데이트로 인한 초기화를 방지하기 위해 테마를 수정할 경우 반드시 자식 테마를 만들어야 합니다.

차일드 테마 만들기

아바다, BE 테마 등 유료 테마에서는 자식 테마 파일이 함께 제공되기도 합니다.

만약 자식 테마가 함께 제공되지 않는다면 직접 하나를 만들면 됩니다. 만드는 방법은 WordPress Codex 문서에서 확인해볼 수 있습니다.

저는 간단히 플러그인을 하나 사용하여 자식 테마를 만듭니다.

이제 부모 테마에서 수정할 파일이 있다면 해당 파일을 자식 테마 폴더로 복사한 다음에 수정하면 됩니다.

가령 Sydney 테마에서 카피라이트 문구를 수정하는 경우를 가정해봅시다. 시드니 테마는 무료와 유료 버전이 제공됩니다. 유료 버전에서는 쉽게 카피라이트 텍스트를 변경할 수 있지만 무료 버전에서는 직접 테마 소스를 수정해야 합니다.

/wp-content/themes/sydney 폴더 아래에 보면 footer.php이 파일이 있습니다. 이 파일을 사용자 컴퓨터로 임시로 다운로드했다가 다시 자식 테마의 폴더로 업로드합니다. 자식 테마의 폴더 이름이 sydney-child라면 /wp-content/themes/sydney-child 폴더로 업로드하면 됩니다.

이 작업은 FTP를 통해서 해도 되고, cPanel을 이용할 수 있는 경우 File Manager라는 툴을 사용해도 됩니다.

예를 들어, Bluehost의 경우 hosting > cPanel > files > File Manager를 클릭하면 파일 관리자 툴이 실행됩니다. 

(※ 업데이트: 이 글을 작성한 후 블루호스트 인터페이스가 변경되었습니다. "블루호스트에서 파일 관리자 (File Manager) 사용하기"를 참고해보세요.)

File Manager에 접속한 후에 워드프레스가 설치된 디렉터리로 이동하여 자식 테마 폴더에 파일을 업로드할 수 있습니다.

위와 같은 화면이 표시되면 상단의 Upload 아이콘을 클릭하여 파일을 업로드할 수 있습니다. File Manager를 사용하면 대량의 파일을 zip 파일로 압축하여 쉽게 업로드가 가능합니다(압축/압축 해제 기능 사용 가능).

FTP를 사용할 경우 다음 글을 참고로 업로드할 수 있습니다.

함수 파일을 추가해야 하는 경우에는 자식 테마 내의 함수 파일(functions.php)에 추가하면 됩니다. 그리고 CSS 코드는 자식 테마 내의 스타일시트 파일(style.css)에 추가할 수 있습니다.

만약 footer.php 파일을 수정하여 자식 테마에 업로드하면, 부모 테마 폴더에 footer.php 파일이 있게 되고 자식 테마 폴더에도 footer.php 파일이 있게 됩니다. 그러면 워드프레스에서는 자식 테마 내의 파일을 우선적으로 로드하게 됩니다. 그러므로 추후에 테마가 업데이트되어도 자식 테마 내의 파일이 먼저 로드되므로 수정 사항이 유지됩니다.

하지만 과도하게 테마 파일을 수정하게 되면, 추후에 테마가 업데이트되면서 문제를 일으킬 수 있습니다. 가급적이면 수정을 최소화하고, 가능한 경우 항상 후크(액션/필터)를 이용하여 수정하거나 기능을 추가하는 것이 좋습니다.

자식 테마를 만들지 않고 테마를 수정한 경우 다음 글을 참고하여 수정된 파일을 자식 테마로 이동시키시기 바랍니다.

워드프레스를 처음 접하는 경우 다음 글이 도움이 될 것입니다.

참고:


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. thumbnail
    patios
    2018.01.12 11:02

    네 감사합니다. 그런데,,,제가 가장 알고 싶었던,,,

    footer.php 을 다운받아서 수정후
    /wp-content/themes/sydney-child/ 라는 폴더로 업로드를 했다고 가정하면,,,
    원래 다운 받았던 /wp-content/themes/sydney 폴더 에도 footer.php 이 한개 있고
    /wp-content/themes/sydney-child/ 라는 폴더에도 수정하여 업로드한 footer.php 이 한개 있는
    상태,,,,,,즉 footer.php 라는 파일이 2개인 셈이 됩니다.

    /wp-content/themes/sydney 폴더에 있는 footer.php 는 그대로 두어도 상관이 없는지,,,
    아니면 삭제를 해야 하는것인지를 알고 싶은 것입니다.

    무슨 말인가 하면 , 이 블로그 내용을 보면,,

    "워드프레스에서는 자식 테마 내의 파일을 우선적으로 로드하게 됩니다. 그러므로 추후에 테마가 업데이트되어도 자식 테마 내의 파일이 먼저 로드되므로 수정 사항이 유지됩니다."

    라고 되어 있습니다.

    이 말은 /wp-content/themes/sydney 폴더에 있는 footer.php 는 사용할 일이 없는 파일이되니
    삭제 하던 그냥 두던 마음대로 해도 된다는 건지,,,
    아니면 삭제를 꼭 해야 한다는 말인지,,,,
    정확한 언급이 없다보니,,,,좀 애매합니다.

    • thumbnail
      홈페이지 제작, 워드프레스, 웹호스팅 정보를 제공하는 블로그 Avada
      2018.01.12 11:08 신고

      안녕하세요?

      부모 테마(여기에서는 /wp-content/themes/sydney 폴더 내 테마) 파일은 그대로 두어야 합니다.

      자식 테마를 만드는 취지는 부모 테마를 건드리지 않고 수정 사항을 적용하기 위한 것입니다.

      부모 테마는 계속 업데이트되어 파일이 변경되더라도 수정하여 자식 테마 폴더 내에 넣으면 수정 사항이 그대로 유지됩니다.

      그리고, 부모 테마에서 추후에 큰 변경이 있게 되면, 자식 테마로 수정한 내용이 문제를 일으킬 수 있습니다. 그러므로 수정 사항은 최소로 하라고 한 것입니다.

    • thumbnail
      홈페이지 제작, 워드프레스, 웹호스팅 정보를 제공하는 블로그 Avada
      2018.01.12 11:13 신고

      앞에서 언급했듯인 부모 테마는 건드리지 않도록 합니다.

      추후에 자식 테마에 문제가 있으면 다시 부모 테마를 활성화해야 하는 경우도 있습니다. 부모 테마 내의 일부 파일이 삭제되면 그런 경우에 문제가 될 수 있겠죠.

  2. thumbnail
    patios
    2018.01.12 11:14

    감사합니다.

    부모테마에 있는 footer.php 은 지우면 안된다,,,,,그대로 두어라 ,,,,,,,,라는 말씀이죠?
    알겠습니다. 감사합니다.

  3. thumbnail
    2018.02.02 15:40

    비밀댓글입니다

    • thumbnail
      홈페이지 제작, 워드프레스, 웹호스팅 정보를 제공하는 블로그 Avada
      2018.02.02 15:56 신고

      안녕하세요?

      테마를 많이 수정했다면 업데이트를 하면 거의 깨진다고 보면 됩니다.

      테마 함수 파일에만 수정한 경우에는 업데이트한 후에 테마 함수 파일을 비교하면서 다시 수정하면 될 것도 같지만, 보통 테마 함수 파일만 수정한 것이 아닐 수 있을 것입니다.

      업데이트를 하지 않으면 아무래도 보안에 취약해질 수밖에 없습니다.

      보통 테마를 마구 수정하여 업데이트를 하지 못하는 경우 리뉴얼을 하는 경우가 많습니다.

      테마 파일만 수정했다면 위에서 언급했듯이 업데이트를 한 후에 수정된 파일과 비교하면서 다시 수정해주어야 할 것입니다. 하지만 가급적 테마 파일 자체를 수정하지 말고 후크(액션/필터)를 사용하여 수정하는 것이 바람직합니다.