워드프레스 강좌 / 자식 테마(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가 변경되었을 때, 자식 테마에는 그 내용이 반영되지 않습니다.

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

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

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

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

같은 카테고리의 다른 글

워드프레스 강좌 / 플러그인 / DW Question & Answer / 질문과 답변 게시판 플러그인

워드프레스 강좌 / 플러그인 / DW Question & Answer / 질문과 답변 게시판 플러그인

게시판 형식은 여러 가지가 있습니다. 그 중 하나가 Q&A 형식의 게시판입니다. 질문을 남기면 답변을 달고, 질문자는 여러 답변에서 원다는 답을 채택하는 시스템입니다. Stack Overflow, 네이버 지식인과 비슷하다고 할 수 있습니다. 워드프레스에도 그런 형식의 게시판을 만들 수 있는 플러그인들이 있습니다. 그 중 하나가 DW Question & Answer입니다. 설치하고 사용하는 방법을 알아보겠습니다. 설치와 설정 워드프레스 ...

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

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

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

워드프레스 강좌 / 플러그인 / List Category Posts / 다양하게 글 목록 출력시켜주는 플러그인

워드프레스 강좌 / 플러그인 / List Category Posts / 다양하게 글 목록 출력시켜주는 플러그인

워드프레스 기본 위젯에 최근 글 위젯이 있습니다. 최신 글 목록을 보여주는 위젯으로 제목 또는 제목과 날짜를 출력해줍니다. 워낙 단순한 기능의 위젯이라 불편한 점이 좀 있습니다. 요약글을 보여주지도 못하고, 썸네일을 출력할 수도 없습니다. 글쓴이를 보여주거나 특정 카테고리의 글만 출력하지도 못합니다. 이를 해결해주는 플러그인 중의 하나가 List category posts입니다. 원하는 카테고리의 글을 원하는 양식으로 ...

워드프레스 강좌 / 글 / 글 쓰기

워드프레스 강좌 / 글 / 글 쓰기

포스트를 쓰는 건 인터넷 게시판에 글을 쓰는 것과 별반 다르지 않습니다. 제목과 본문을 작성하고 이미지나 파일 등을 첨부한 후 저장하면 됩니다. 하지만 인터넷 게시판에서는 볼 수 없는 설정들이 몇가지 있으니 그 내용들을 중점적으로 보시면 됩니다. 글 쓰기는 에서 합니다. 화면 옵션 새 포스트를 작성하는 화면으로 가면 글을 입력할 수 있는 ...

워드프레스 강좌 / 플러그인 / Ad Inserter / 애드센스 광고 쉽게 삽입할 수 있게 해주는 플러그인

워드프레스 강좌 / 플러그인 / Ad Inserter / 애드센스 광고 쉽게 삽입할 수 있게 해주는 플러그인

Ad Inserter 워드프레스로 만든 사이트 또는 블로그에 애드센스 광고를 넣는 방법은 여러 가지입니다. 그 중 Ad Inserter 플러그인으로 광고를 삽입하는 방법을 소개합니다. Ad Inserter는 광고를 삽입하게 해주는 플러그인으로, 애드센스 광고를 본문 위, 본문 중간 등에 쉽게 넣을 수 있게 해줍니다. 설치 WordPress.ORG에서 공유되는 플러그인이므로 워드프레스 관리자에서 바로 설치할 수 있습니다. 본문에 애드센스 광고 넣기 본문 상단 설정은 ...

워드프레스 강좌 / 플러그인 / Table of Contents Plus / 포스트, 페이지에 차례(목차) 만드는 플러그인

워드프레스 강좌 / 플러그인 / Table of Contents Plus / 포스트, 페이지에 차례(목차) 만드는 플러그인

긴 글을 읽을 때 차례(목차)가 있으면 좋습니다. 예를 들어 위키백과는 문서 상단에 목차가 있습니다. 목차가 있으면 문서가 어떤 내용을 담고 있는지 파악하기 쉽고 링크가 걸려 있어 원하는 내용으로 이동하기 편하다는 장점이 있습니다. Table of Contents Plus 목차를 영어로 Table of Contents, 줄여서 TOC라고 합니다. TOC로 검색하면 꽤 많은 플러그인이 나오는데, 가장 사용자가 많은 플러그인이 Table of ...

워드프레스 강좌 / 카테고리

워드프레스 강좌 / 카테고리

카테고리 워드프레스의 글(포스트)은 카테고리로 분류합니다. 글은 적어도 하나 이상의 카테고리에 속하게 됩니다. 글 작성시 카테고리를 선택하지 않으면 기본 카테고리가 선택됩니다. 카테고리 관리는 에서 합니다. 글 작성 화면에서도 카테고리 관리를 할 수 있지만, 상세한 설정을 할 수는 없습니다. 카테고리 만들기 로 이동하면 다음과 같은 화면이 나옵니다. 이름 등을 입력하고 [새 카테고리 ...

워드프레스 강좌 / 글 / 고전 편집기 / 화면 옵션

워드프레스 강좌 / 글 / 고전 편집기 / 화면 옵션

워드프레스 관리자 페이지의 메뉴는 왼쪽에 있습니다. 플러그인이나 테마를 설치하면 메뉴는 더 늘어납니다. 왼쪽의 메뉴를 클릭하면 오른쪽에 관련 내용이 나옵니다. 그런데 보여줄 수 있는 모든 내용이 다 나오지는 않습니다. 화면 크기가 한정되어 있다보니 자주 사용되거나 중요한 내용만 나오기도 합니다. 숨겨진 내용은 오른쪽 위의 에서 보이게 할 수 있습니다.(반대로 화면에 있는 내용을 숨길 ...

워드프레스 강좌 / 플러그인 / Responsive Lightbox & Gallery / 이미지 클릭했을 때 확대하는 플러그인

워드프레스 강좌 / 플러그인 / Responsive Lightbox & Gallery / 이미지 클릭했을 때 확대하는 플러그인

워드프레스 테마는 일반적으로, 이미지를 본문에 넣을 때 이미지가 아무리 커도 본문 가로폭을 넘어가지 못하게 만듭니다. 보기에는 좋지만, 그렇게 하면 큰 이미지가 작게 보여서 이미지 안의 내용을 보기 힘들 수가 있습니다. 이를 해결하는 방법은 라이트박스 플러그인을 사용하는 것입니다. 이미지를 클릭하면 원본 이미지로 또는 크게 확대 되는 걸 본 적 있으시죠? 그게 ...

워드프레스 강좌 / 플러그인 / WP Login Timeout Settings / 세션 타임 변경 플러그인

워드프레스 강좌 / 플러그인 / WP Login Timeout Settings / 세션 타임 변경 플러그인

워드프레스에 로그인하면 2일 동안 로그인 상태가 유지됩니다.(웹브라우저를 닫으면 로그아웃 됩니다.) 로그인할 때 에 체크하면 14일 동안 로그인 상태가 유지됩니다.(웹브라우저를 닫아도 로그아웃되지 않습니다.) 로그인 상태를 유지하는 기간이 짧거나 길게 느껴진다면 변경할 수 있습니다. 테마의 functions.php를 수정하는 방법도 있지만, 플러그인을 사용하는 게 편합니다. WP Login Timeout Settings를 설치하고 활성화합니다. 기간 변경의 필요가 없어서인지 사용자가 ...