워드프레스 강좌 / 자식 테마(Child Theme)의 뜻과 만드는 방법, 장단점

자식 테마의 뜻

어떤 테마의 디자인과 기능을 그대로 상속 받는 테마를 자식 테마(Child Theme)라 합니다. 이때 상속해주는 테마를 부모 테마(Parent Theme)라 합니다.

자식 테마 만드는 방법

워드프레스의 기본 테마 중 하나인 Twenty Seventeen의 자식 테마를 만들어보겠습니다.

방법 1

wp-content/themes 폴더에 twentyseventeen-child 폴더를 만듭니다. (폴더 이름은 다른 것으로 해도 상관없습니다.)

twentyseventeen-child 폴더 안에 다음의 내용을 가진 style.css 파일을 만듭니다.

/*
  Theme Name: Twenty Seventeen Child Theme
  Template: twentyseventeen
*/
@import url( "../twentyseventeen/style.css" );
  • Theme Name : 테마의 이름을 값으로 입력합니다. 원하는 이름으로 만드세요.
  • Template : 부모 테마의 폴더 이름을 값으로 입력합니다. 정확히 입력하세요.
  • 마지막 줄에 있는 twentyseventeen은 부모 테마의 폴더 이름입니다.

방법 2

wp-content/themes 폴더에 twentyseventeen-child 폴더를 만듭니다. (폴더 이름은 다른 것으로 해도 상관없습니다.)

twentyseventeen-child 폴더 안에 다음의 내용을 가진 style.css 파일을 만듭니다.

/*
  Theme Name: Twenty Seventeen Child Theme
  Template: twentyseventeen
*/
  • Theme Name : 테마의 이름을 값으로 입력합니다. 원하는 이름으로 만드세요.
  • Template : 부모 테마의 폴더 이름을 값으로 입력합니다. 정확히 입력하세요.

twentyseventeen-child 폴더 안에 다음의 내용을 가진 functions.php 파일을 만듭니다.

<?php
  function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( 'parent-style' ) );
  }
  add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
?>

테마 활성화

이제 [테마 디자인 - 테마]로 가면 테마가 추가된 것을 확인할 수 있고, 활성화할 수 있습니다.

참고

썸네일

테마 목록에 썸네일이 나오게 하고 싶다면 부모 테마의 screenshot.png를 자식 테마로 복사해 넣으면 됩니다.

테마 정보

style.css에 추가할 수 있는 내용은 더 많습니다.

/*
  Theme Name:     xxxx
  Theme URI:      xxxx
  Description:    xxxx
  Author:         xxxx
  Author URI:     xxxx
  Template:       xxxx
  Version:        xxxx
*/

이 중에서 Theme Name과 Template만 필수이고, 나머지는 옵션입니다.

방법 1과 방법 2

방법 2가 만들기에는 번거롭지만, 방법 1보다 방법 2가 성능면에서 더 좋다고 합니다.

자식 테마 작동 방식

자식 테마에 없는 파일은 부모 테마의 것을 사용합니다.

  • index.php 파일이 필요하다면 자식 테마에서 먼저 찾은 후, 없으면 부모 테마에서 찾습니다.
  • header.php 파일이 필요하다면 자식 테마에서 먼저 찾은 후, 없으면 부모 테마에서 찾습니다.

단, functions.php는 예외입니다. 부모 테마의 functions.php에 자식 테마의 functions.php를 추가합니다.

자식 테마의 수정

스타일 수정

일반적으로 스타일만 수정할 것이라면 style.css에 수정할 코드를 넣으면 됩니다. (테마에 따라 수정할 곳이 다를 수 있습니다.)

템플릿

템플릿을 수정하고 싶다면, 수정하려는 템플릿을 자식 테마의 폴더로 복사한 후 수정합니다.

예를 들어 header.php를 수정하고 싶다면, 부모 테마에 있는 header.php를 자식 테마의 폴더로 복사한 후 수정합니다.

functions.php

자식 테마의 functions.php에 코드를 추가합니다.

부모 테마의 functions.php를 복사해오면 안됩니다. 부모 테마의 functions.php 내용에 자식 테마의 functions.php 내용을 추가하기 때문입니다.

장점

테마를 업데이트하면 기존 내용이 사라지고 새 테마가 설치됩니다. 따라서 부모 테마를 직접 수정했다면, 테마를 업데이트했을 때 수정했던 것이 다 사라집니다.

하지만 자식 테마를 사용하면, 수정은 자식 테마에서 하므로 수정한 내용을 유지할 수 있습니다.

단점

예를 들어 부모 테마에서 자식 테마로 header.php를 복사한 후, 부모 테마의 업데이트로 header.php가 변경되었을 때, 자식 테마에는 그 내용이 반영되지 않습니다.

따라서 템플릿 파일을 자식 테마에서 수정했다면 부모 테마를 업데이트했을 때 문제가 발생할 수 있습니다. 만약 문제가 발생하지 않더라도 보안 업데이트 등 중요한 변화를 놓칠 수 있습니다.

자식 테마를 사용할까 말까?

스타일을 수정하거나, 부모 테마에 없는 것을 추가하는 경우에는 자식 테마를 사용하는 게 좋습니다.

만약 부모 테마에 있는 템플릿 파일 등 주요 파일을 수정하는 경우라면 자식 테마 사용에 주의를 기울여야 합니다. 테스트 사이트를 만들어서, 부모 테마를 업데이트를 했을 때 문제가 없는지 꼭 확인해야 합니다.

같은 카테고리의 다른 글

워드프레스 / 플러그인 / KBoard / 일대일(1:1) 상담 게시판 만드는 방법

워드프레스 / 플러그인 / KBoard / 일대일(1:1) 상담 게시판 만드는 방법

인터넷 쇼핑몰이나 서비스에 일대일 상담 기능이 있습니다. 질문자 입장에서는 나의 문의나 정보가 다른 사람에게 공개되지 않고, 판매자 입장에서는 제품 또는 서비스의 문제점이나 오류가 알려지는 것을 방지할 수 있다는 장점이 있습니다. 워드프레스에 일대일 상담 기능을 제공하는 플러그인이 여러 가지가 있는데, KBoard를 이용해서 구현할 수도 있습니다. 무료이기도 하고, 이미 KBoard로 게시판을 운영하고 있다면 ...

워드프레스 강좌 / 테마 설치하기, 활성화하기, 삭제하기

워드프레스 강좌 / 테마 설치하기, 활성화하기, 삭제하기

워드프레스는 테마 선택이 중요합니다. 목적에 맞는 테마를 잘 선택하면 적은 노력으로 원하는 결과를 얻을 수 있습니다. 이번 강좌에서는 테마를 어떻게 설치하고 활성화하는지, 그리고 필요 없는 테마를 어떻게 삭제하는지 알아보겠습니다. 테마 활성화하기 로 이동하면, 설치된 테마 목록을 볼 수 있습니다. 테마에 마우스를 올리면 테마 세부사항, 실시간 미리보기, 활성화 버튼이 나타납니다. 을 클릭하면 ...

워드프레스 강좌 / 메뉴 만들고 배치하기

워드프레스 강좌 / 메뉴 만들고 배치하기

워드프레스는 페이지, 글, 카테고리, 태그, 사용자 정의 링크 등으로 메뉴를 만들 수 있습니다. 그리고 그 메뉴는 테마가 제공하는 위치에 배치를 합니다. 하나의 메뉴를 여러 곳에 배치할 수도 있고, 위젯에 추가하는 것도 가능합니다. 메뉴 생성과 관리는 에서 합니다. 화면 옵션 메뉴에 추가할 수 있는 아이템은 여러 가지가 있습니다. 그리고 테마나 플러그인으로 ...

워드프레스 / 우커머스 / 구입 완료 페이지에 구글 애드 전환 추적 코드 넣는 방법

워드프레스 / 우커머스 / 구입 완료 페이지에 구글 애드 전환 추적 코드 넣는 방법

구글 광고를 하면, 그 광고를 클릭한 후 어떤 액션이 있을 때 기록을 할 수 있습니다. 이를 전환이라고 합니다. 예를 들어 쇼핑몰이라면, 구글 광고를 클릭하고 들어와서 상품 구매 완료 시 신호를 보내서 기록을 하는 것이죠. 그러면 광고 효과 분석이 용이해집니다. 이를 하기 위해서는 전체 사이트 태그, 이벤트 스니펫 두 가지 코드를 넣어야 ...

워드프레스 강좌 / 링크 없는 메뉴 만드는 방법

워드프레스 강좌 / 링크 없는 메뉴 만드는 방법

워드프레스의 메뉴는 링크를 가지고 있습니다. 하지만 계층형으로 만들거나 메뉴 그룹을 만들 때 링크가 없는 메뉴가 필요할 때가 있습니다. 기본 기능으로는 그러한 메뉴를 만들 수 없지만, 약간의 편법을 사용하면 가능합니다. 사용자정의 링크를 만듭니다. URL에는 아무거나 입력해도 상관없습니다. 뭘 쓸지 고민된다면 #을 입력하면 됩니다. URL이 비어 있으면 메뉴가 만들어지지 않으므로 꼭 입력해야 합니다. 메뉴 수정으로 가서 ...

워드프레스 강좌 / 플러그인 / Enlighter / 코드 하이라이터(Code Highlighter) 플러그인

워드프레스 강좌 / 플러그인 / Enlighter / 코드 하이라이터(Code Highlighter) 플러그인

Enlighter 워드프레스 코드 하이라이트 플러그인으로 널리 사용되는 것은 Crayon Syntax Highlighter입니다. 그런데 개발이 중단된지 꽤 되었습니다. 그래서 찾은 다른 플러그인이 Enlighter입니다. 어떻게 사용하는지 간단히 알아보겠습니다. 설치와 설정 설치는 워드프레스 관리자 페이지에서 할 수 있습니다. highlighter로 검색 후 설치합니다. 설정은 Enlighter에서 합니다. 다양한 메뉴가 있는데, 기본 설정 그대로 사용해도 큰 불편은 없습니다. 사용법 - 블록 편집기 Enlighter를 ...

워드프레스 강좌 / 플러그인 / Advanced Custom Fields / 사용자 정의 필드 만드는 플러그인

워드프레스 강좌 / 플러그인 / Advanced Custom Fields / 사용자 정의 필드 만드는 플러그인

워드프레스의 사용자 정의 필드 기능으로 글이나 페이지에 추가적인 정보를 넣을 수 있습니다. 하지만, 단순한 형태로 되어 있어서 많은 정보를 추가할 때 불편함이 있습니다. 이를 보완해주는 사용자 정의 필드 관련 플러그인이 여럿 있는데, 그 중 널리 사용되는 것이 Advanced Custom Fields입니다. 텍스트, 범위, 체크박스, 라디오 버튼, 파일, 이미지, 달력 등 다양한 형식으로 값을 입력할 수 ...

워드프레스 강좌 / 자동 업데이트와 자동 업데이트 끄는 방법

워드프레스 강좌 / 자동 업데이트와 자동 업데이트 끄는 방법

자동 업데이트 워드프레스는 코어, 플러그인, 테마, 번역 네가지 분류로 업데이트를 하고, 업데이트는 보통 마이너 업데이트, 메이저 업데이트로 구분합니다. (코어는 워드프레스 자체를 의미합니다.) 워드프레스 기본 설정 하에서는 마이너 업데이트와 번역 업데이트는 자동으로 업데이트합니다. 즉, 사용자가 아무런 작업을 하지 않아도 백그라운드에서 업데이트를 해버리는 것이죠. 메이저 업데이트는 알림이 뜨고, 사용자가 직접 업데이트를 합니다. 보안 측면에서는 자동 ...

워드프레스 강좌 / 플러그인 / Search Meter / 검색어 키워드 통계 플러그인

워드프레스 강좌 / 플러그인 / Search Meter / 검색어 키워드 통계 플러그인

Search Meter 워드프레스는 검색 기능을 갖고 있습니다. 키워드를 입력하면 해당 키워드를 가진 콘텐츠를 보여줍니다. 하지만, 그 키워드가 무엇인지, 얼마나 검색했는지 관리자에게 알려주는 기능은 없습니다. 방문자가 어떤 키워드로 검색했는지 알고 싶다면 플러그인의 도움을 받아야 합니다. 대표적인 플러그인은 Search Meter입니다. WordPress.ORG에서 공유되는 플러그인이므로 워드프레스 관리자에서 설치할 수 있습니다. 설치하고 활성화합니다. 키워드 보기 에서 키워드를 볼 ...

워드프레스 강좌 / 관리자 이메일 주소 변경하는 방법

워드프레스 강좌 / 관리자 이메일 주소 변경하는 방법

워드프레스를 설치할 때 관리자 계정을 만들고 메일 주소를 입력합니다. 워드프레스가 자동 업데이트 되거나, 댓글이 달리는 등 주요 사건이 발생하면 그 메일로 알림을 보냅니다. 따라서 수신 가능한 메일 주소로 설정하고, 변경이 필요하면 바로바로 업데이트하는 것이 좋습니다. 워드프레스 이메일 주소 변경하기 으로 이동합니다. 이메일 주소를 입력합니다. 을 클릭합니다. 새로운 이메일 주소로 인증 메일이 ...

워드프레스 강좌