워드프레스 자식 테마 만드는 방법 – 업데이트해도 안전한 커스터마이징

워드프레스 테마를 직접 수정했는데, 테마를 업데이트하니 수정한 내용이 전부 사라진 경험이 있으신가요? 이런 사태를 방지하는 것이 자식 테마(Child Theme)입니다. 자식 테마를 사용하면 부모 테마가 업데이트되어도 내가 커스터마이징한 코드는 안전하게 유지됩니다.

자식 테마란?

부모 테마자식 테마
역할기본 디자인/기능 제공부모 테마를 상속하면서 수정사항만 관리
업데이트개발자가 배포하는 업데이트 적용업데이트 영향 없음
수정 범위직접 수정 ✕ (업데이트 시 초기화)CSS, PHP, 템플릿 자유롭게 수정 ✔

원리: 워드프레스는 자식 테마의 파일을 먼저 확인하고, 없으면 부모 테마의 파일을 사용합니다. 따라서 자식 테마에서 수정한 파일만 우선 적용되고, 나머지는 부모 테마 그대로입니다.

자식 테마 만들기 (수동 방법)

Step 1: 자식 테마 폴더 생성

# wp-content/themes/ 아래에 자식 테마 폴더 생성
# 부모 테마가 "generatepress"라면:
mkdir /home/wpadmin/public_html/wp-content/themes/generatepress-child

Step 2: style.css 생성

자식 테마의 필수 파일입니다. 이 파일에서 부모 테마를 지정합니다.

/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://study.thisgun.net
 Description:  GeneratePress 자식 테마
 Author:       사이트 관리자
 Author URI:   https://study.thisgun.net
 Template:     generatepress    ← 부모 테마의 폴더명 (정확히!)
 Version:      1.0.0
*/

/* 여기에 커스텀 CSS 추가 */
/* 예: 본문 글꼴 크기 변경 */
body {
    font-size: 17px;
    line-height: 1.8;
}

/* 링크 색상 변경 */
a {
    color: #0073aa;
}

/* 헤더 배경색 */
.site-header {
    background-color: #ffffff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

주의: Template: 값은 부모 테마의 폴더 이름과 정확히 일치해야 합니다. wp-content/themes/에서 부모 테마 폴더명을 확인하세요.

Step 3: functions.php 생성

부모 테마의 스타일시트를 불러오는 코드입니다.

<?php
// 부모 테마 + 자식 테마 스타일시트 불러오기
function child_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', 'child_theme_enqueue_styles');

// 여기 아래에 커스텀 PHP 코드 추가
// 예: 발행일 대신 수정일 표시
// 예: 커스텀 위젯 추가
// 예: 관리자 기능 커스터마이징

Step 4: 자식 테마 활성화

  1. 워드프레스 관리자 → 외모 → 테마
  2. “GeneratePress Child” 테마가 목록에 나타남
  3. “활성화” 클릭
  4. 사이트 확인 → 부모 테마와 동일하게 보이면 성공!

자식 테마에서 할 수 있는 것들

작업방법
CSS 수정자식 테마의 style.css에 추가
PHP 기능 추가자식 테마의 functions.php에 추가
템플릿 수정부모 테마의 템플릿 파일을 자식 테마로 복사 후 수정
(예: header.php, single.php, footer.php)
새 페이지 템플릿자식 테마에 새 PHP 파일 생성

템플릿 파일 오버라이드 예시

# 부모 테마의 header.php를 수정하고 싶다면:
# 1. 부모 테마에서 header.php를 자식 테마 폴더로 복사
cp wp-content/themes/generatepress/header.php 
   wp-content/themes/generatepress-child/header.php

# 2. 자식 테마의 header.php를 수정
# → 워드프레스가 자식 테마의 header.php를 우선 사용합니다

플러그인으로 간편하게 만들기

코드가 어렵다면 Child Theme Configurator 플러그인으로 클릭 몇 번이면 자식 테마를 생성할 수 있습니다.

  1. 플러그인 → 새로 추가 → “Child Theme Configurator” 검색 → 설치/활성화
  2. 도구 → Child Themes 메뉴
  3. 부모 테마 선택 → “Analyze” → “Create New Child Theme”
  4. 완료! 외모 → 테마에서 활성화

자주 하는 실수

실수결과해결
Template 이름 오타테마가 깨짐/표시 안 됨부모 테마 폴더명과 정확히 일치 확인
부모 테마 직접 수정업데이트 시 수정 내용 사라짐항상 자식 테마에서 수정
functions.php에 부모 스타일 미로드디자인 깨짐위의 enqueue 코드 필수 포함

마무리

자식 테마는 워드프레스 커스터마이징의 가장 기본이자 필수입니다. 테마를 조금이라도 수정할 계획이 있다면, 반드시 자식 테마를 먼저 만드세요. 한 번 만들면 이후 모든 수정이 안전해집니다. 소요 시간: 수동 5분, 플러그인 2분.

댓글 남기기