워드프레스 블로그를 운영하다 보면 디자인을 수정하거나 기능을 추가하기 위해 CSS나 PHP 코드를 만져야 할 때가 반드시 온다. 보통 구글링을 통해 찾은 코드를 functions.php 파일이나 style.css에 붙여넣으라는 가이드를 많이 보게 되는데, 여기서 멈칫하게 된다.
“이거 그냥 붙여넣어도 사이트 안 터지나?” “테마 업데이트하면 다 날아가는 거 아니야?”.
결론부터 말하자면, 원본 파일을 직접 수정하는 건 절대 금물이다. 테마 업데이트 시 초기화되는 문제를 막고 안전하게 워드프레스를 커스터마이징 하는 두 가지 방법, 차일드 테마(Child Theme)와 코드 스니펫 플러그인의 장단점과 설치 방법을 정리해 본다.
테스트 및 운영 환경
현재 내가 운영 중인 워드프레스 환경은 다음과 같다.
- Hosting: 오라클 클라우드 프리티어 (Oracle Cloud Free Tier)
- Web Server: Nginx (Nginx Proxy Manager)
- WordPress Ver: 6.8.3
- Theme: GeneratePress Premium
워드프레스 functions.php 원본 파일을 수정하면 안 되는 이유
왜 귀찮게 별도의 방법을 써야 할까? 이유는 딱 두 가지다. ‘데이터 보존’과 ‘사이트 안전’ 때문이다.
테마 개발자는 보안 패치나 기능 개선을 위해 수시로 업데이트를 배포한다. 만약 부모 테마(Parent Theme)의 파일을 직접 수정했다면, 업데이트 버튼을 누르는 순간 작성했던 모든 코드가 덮어씌워져 초기화된다. 또한, PHP 문법 오류가 났을 때 원본을 건드린 경우라면 FTP로 접속해서 복구해야 하는 등 일이 커진다.
방법1: 워드프레스 차일드 테마 사용법
차일드 테마는 부모 테마의 기능을 상속받으면서, 수정하고 싶은 파일만 별도로 관리하는 방식이다. 가장 정석적이고 개발 친화적인 방법이다.
차일드 테마의 장점
- 구조적 변경 가능: 단순 코드 추가를 넘어
header.php,footer.php등 템플릿 파일 자체를 수정할 수 있다. - 코드 관리: 방대한 양의 CSS나 커스텀 함수를 파일 단위로 깔끔하게 관리할 수 있다.
설치 및 적용 방법
제작사 홈페이지 활용
요즘 나오는 유료 테마(GeneratePress, Astra 등)는 대부분 원클릭 설치를 지원하거나 제작사 홈페이지에서 파일을 제공한다.
- GeneratePress : Using a Child Theme
- Astra : Astra Child Theme Generator
수동 제작
수동으로 폴더를 만들고 파일을 생성하는 ‘개발자스러운’ 방법도 있지만, 우리는 스마트하게 플러그인을 쓰면 복잡한 설정도 클릭 몇 번이면 끝난다.Child Theme Configurator
특히 이 플러그인을 강추하는 이유는 기존 테마의 설정(메뉴, 위젯, 색상 등)을 그대로 가져올 수 있기 때문이다. 수동으로 만들면 설정이 초기화돼서 다시 세팅해야 하는 대참사가 일어난다.
단계별 설치 가이드
Step 1. 플러그인 설치 및 활성화 워드프레스 관리자 페이지에서 플러그인 > 새로 추가로 이동한다. 검색창에 Child Theme Configurator를 검색하고 설치, 활성화한다.
Step 2. 부모 테마 분석 (Analyze) 설치가 끝났다면 도구(Tools) > Child Themes 메뉴로 들어간다.
- **”Create a new Child Theme”**를 선택한다.
- “Select a Parent Theme” 드롭다운에서 내가 현재 쓰고 있는 테마(예: GeneratePress)를 선택한다.
- [Analyze] 버튼을 클릭한다.
참고: 이 과정은 플러그인이 부모 테마의 파일 구조를 분석해서 문제가 없는지 체크하는 단계다. “This theme appears OK to use as a Child theme”라는 초록색 메시지가 뜨면 성공이다.
Step 3. 상세 설정 (가장 중요!) 분석이 끝나면 아래에 옵션들이 촤라락 펼쳐지는데, 다 건드릴 필요 없다. 핵심은 4번과 8번이다.
- Section 4 (이름 설정): 차일드 테마의 폴더 이름을 정하는 곳이다. 보통
테마이름-child로 자동 설정되니 그대로 둬도 무방하다. - Section 5~7: 기본값으로 둔다. (스타일시트 처리 방식인데, 대부분 건드릴 필요 없다.)
- Section 8 (설정 복사 – ⭐필수 체크): “Copy Menus, Widgets and other Customizer Settings from the Parent Theme to the Child Theme” 체크박스를 반드시 선택한다. 이걸 체크해야 지금 눈에 보이는 디자인 설정이 그대로 유지된다. 안 하면 사이트가 초기화된 것처럼 보일 수 있다.
Step 4. 테마 생성 및 활성화 모든 설정이 끝났다면 맨 아래 [Create New Child Theme] 버튼을 누른다. 잠시 후 상단에 생성되었다는 메시지가 뜨면 성공이다.
마지막으로 외모(Appearance) > 테마(Themes)로 이동해 보자. 방금 만든 ‘GeneratePress Child’ 테마가 보일 것이다. [활성화] 버튼을 누르면 끝. 이제부터 모든 커스터마이징은 안전하게 적용된다.
방법2: 코드 스니펫 플러그인 추천 및 사용법
파일 관리가 귀찮고 FTP 접속 없이 관리자 화면(Dashboard)에서 모든 걸 끝내고 싶다면 플러그인이 답이다. 대표적으로 WPCode(👍추천)나 Code Snippets가 있다.
스니펫 플러그인의 장점
- 에러 방지(Safety): 코드 문법이 틀려 치명적인 오류가 발생하면, 플러그인이 자동으로 해당 코드를 비활성화해 ‘흰 화면(White Screen)’ 현상을 막아준다. (초보자에게 강추)
- 편리한 관리: 코드별로 이름(Label)을 붙이고 스위치로 끄고 켤 수 있어 유지보수가 쉽다.
- 테마 독립성: 테마를 변경하더라도 플러그인에 저장된 코드는 그대로 작동한다.
요약: 차일드 테마 vs 스니펫 플러그인, 상황별 추천
그래서 언제 무엇을 써야 할까? 둘 다 써본 입장에서 명확한 기준을 정해준다.
| 비교 항목 | 차일드 테마 (Child Theme) | 스니펫 플러그인 (Code Snippets) |
| 핵심 요약 | “디자인 레이아웃을 뜯어고칠 때” | “특정 기능을 한 스푼 더할 때” |
| 주 사용처 | 테마 템플릿 파일 수정, 대량의 CSS 커스텀 | GA 스크립트 삽입, 간단한 PHP 함수 추가 |
| 난이도 | 중 (파일 구조 이해 필요) | 하 (복사 & 붙여넣기 수준) |
| 유지보수 | 테마 변경 시 재설정 필요 | 테마를 바꿔도 기능 유지됨 (강력 추천) |
개인적으로는 단순한 기능 추가나 구글 애널리틱스 코드 삽입 정도라면 스니펫 플러그인을 강력하게 추천한다. 하지만 테마의 레이아웃을 근본적으로 뜯어고쳐야 한다면 차일드 테마가 정답이다.


