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

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

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

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

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

같은 카테고리의 다른 글

워드프레스 강좌 / 내보내기와 가져오기

워드프레스 강좌 / 내보내기와 가져오기

워드프레스로 만는 A라는 사이트의 콘텐츠를 워드프레스로 만든 B라는 사이트로 옮길 때 사용하는 것이 내보내기와 가져오기입니다. 내보내기 내보내기는 에서 합니다. 사용하는 테마나 플러그인에 따라, 내보내는 콘텐츠가 적을 수도 있고… 많을 수도 있습니다. 내보낼 콘텐츠를 선택한 다음 를 클릭합니다. 다운로드하는 파일은 텍스트만 포함한 XML 파일로, 파일 크기는 그리 크지 않습니다. 가져오기 가져오기는 에서 합니다. ...

워드프레스 강좌 / Yoast SEO / 사이트맵(sitemap) 활성화하는 방법

워드프레스 강좌 / Yoast SEO / 사이트맵(sitemap) 활성화하는 방법

사이트맵(sitemap) 사이트맵은 사이트에 있는 콘텐츠를 정리한 XML 파일입니다. 네이버 웹마스터 도구나 구글 웹마스터 도구에 사이트맵을 등록해야 검색이 잘 됩니다. 사이트맵은 보통 Google XML Sitemaps 플러그인으로 만듭니다. 사이트맵 생성 플러그인 중에서는 가장 인기있는 플러그인입니다. 만약 Yoast SEO를 사용한다면 Google XML Sitemaps를 사용할 필요가 없습니다. Yoast SEO에 포함되어 있기 때문입니다. Yoast SEO의 사이트맵 기능 활성화하기 General의 Features 탭에 XML sitemaps가 ...

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

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

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

워드프레스 강좌 / 우커머스 / 한글 번역 수정하는 방법

워드프레스 강좌 / 우커머스 / 한글 번역 수정하는 방법

우커머스를 설치하면 한글 번역 파일도 같이 설치됩니다. 예전에는 번역률이 낮아서 사용이 어려웠는데, 지금은 많은 분들의 도움으로 번역률이 100%입니다. 하지만, 일부 번역은 마음에 들지 않을 수 있고, 쇼핑몰 특성 상 더 좋은 번역이 있을 수도 있습니다. 그럴 경우 우커머스의 번역을 수정하여 사용할 수 있습니다. Loco Translate 설치 번역 플러그인 Loco Translate를 설치하고 활성화합니다. 기본 사용법 : Loco ...

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

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

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

워드프레스 강좌 / 데모 콘텐츠 추가하는 방법

워드프레스 강좌 / 데모 콘텐츠 추가하는 방법

워드프레스를 공부하거나 테마를 만들 때, 빈 워드프레스 사이트보다는 콘텐츠가 어느 정도 있는 것이 편합니다. 테스트를 위한 콘텐츠를 만드는 방법은 몇 가지가 있는데, 그 중 한가지 방법은 WordPress.ORG에 있는 Theme Unit Test를 이용하는 것입니다. 이를 이용하여 콘텐츠를 추가하는 방법을 알아보겠습니다. Theme Unit Test 다운로드 Theme Unit Test 사이트에 접속합니다. 화살표가 가리키는 링크를 클릭하여 XML ...

워드프레스 강좌 / 플러그인 / Content Cards / 링크를 네이버나 페이스북처럼 만들어주는 플러그인

워드프레스 강좌 / 플러그인 / Content Cards / 링크를 네이버나 페이스북처럼 만들어주는 플러그인

Content Cards 네이버 블로그에서 링크를 추가하면, 썸네일과 요약글이 있는 링크가 만들어집니다. 페이스북에도 비슷한 기능이 있습니다. 워드프레스 자체에는 이 기능이 없지만, Content Cards 플러그인을 이용하면 비슷한 효과를 낼 수 있습니다. 설치 WordPress.ORG에서 공유되는 플러그인이므로 워드프레스 관리자에서 설치할 수 있습니다. 링크 삽입하기 플러그인을 활성화하면 에디터에 아이콘이 하나 생깁니다. 그 아이콘을 클릭하여 링크를 추가합니다. 링크가 가리키는 문서에서 이미지와 제목, 글의 일부를 ...

워드프레스 강좌 / 특성 이미지 설정하는 방법

워드프레스 강좌 / 특성 이미지 설정하는 방법

특성 이미지 워드프레스의 글이나 페이지에는 특성 이미지를 설정하는 옵션이 있습니다. 특성 이미지는 해당 글을 대표하는 이미지로, 글의 내용을 잘 반영하는 이미지로 설정합니다. 특성 이미지는 본문에 삽입되는 것은 아니지만, 테마나 플러그인에서 여러 가지 방식으로 활용하니, 가능하다면 설정하는 것이 좋습니다. 특성 이미지 설정하기 글이나 페이지를 작성하는 화면에 특성 이미지를 설정하는 옵션이 있습니다. 을 클릭합니다. 기존 ...

워드프레스 강좌 / 플러그인 / Google XML Sitemaps / 사이트맵 만들어주는 플러그인

워드프레스 강좌 / 플러그인 / Google XML Sitemaps / 사이트맵 만들어주는 플러그인

사이트맵(Sitemap) 사이트맵은 사이트에 있는 콘텐츠의 URL, 업데이트 날짜, 중요도 등을 정리한 XML 파일입니다. Sitemaps.org에서는 사이트맵을 다음과 같이 설명하고 있습니다. Sitemap은 웹마스터가 크롤링에 사용할 수 있는 사이트의 페이지에 대한 정보를 검색 엔진에 알리는 손쉬운 방법입니다. Sitemap의 가장 간단한 형식은 검색 엔진에서 사이트를 보다 지능적으로 크롤링할 수 있도록 각 URL에 대한 추가 메타데이터(마지막 업데이트된 날짜, ...

워드프레스 강좌 / 멀티사이트 만드는 방법

워드프레스 강좌 / 멀티사이트 만드는 방법

서브 도메인과 서브 디렉토리 멀티사이트를 만드는 방법에는 서브 도메인 방식과 서브 디텍토리 방식이 있습니다. cmsfactory.net이라는 도메인이 있을 때, abc.cmsfactory.net 이 서브 도메인이고 cmsfactory.net/abc 가 서브 디렉토리입니다. 서브 도메인 방식으로 멀티사이트를 만드는 것은 언제든 가능하지만, 서브 디렉토리 방식으로 멀티사이트를 만드는 것은 처음 설치했을 때만 가능합니다. 기존 URL과 멀티사이트의 URL이 충돌할 수 있기 때문입니다. 운영 중인 사이트에 멀티사이트를 추가하려고 하면 다음처럼 ...

워드프레스 강좌