워드프레스에는 차일드 테마라는 기능이 있다.
차일드 테마의 기본 설명이나 동작 원리 자체는 워드프레스 공식 가이드에도 잘 나와 있고, 사용자 사이에서도 매우 흔하게 통용되는 기능이다. 상세한 구조나 동작 원리 자체는 공식 문서를 참고하자.
단점은 거의 없고 장점만 가득한 기능
처음 워드프레스를 연습용으로 설치해서 쓰던 시절, 서점에서 사 온 책을 보며 하나씩 따라 했다. 그런데 그때 그 책엔 차일드 테마에 대한 설명이 없었다. 아니, 내용 자체가 없었다. 그나마 이후에 나온 책 중엔 들어 있는 책도 있는듯 하나, 직접 확인해보진 못했다.
내 설정을 온전히 보관하는 자체가 최고의 장점
직접 테마를 만들어서 업데이트하는 게 아니라면, 결국 원천이 될 테마는 개발자가 업데이트를 올릴 때마다 따라가야 한다. 그게 테마 설치 직후가 될지, 몇 년 뒤가 될지 아무도 예측할 수 없다는 것만 확실하다. 즉, 테마를 직접 수정하면 테마 업데이트로 인해 설정이 초기화될 리스크가 있는 만큼 사이트 설치 후 극초반 설정 과정에서 차일드 테마를 같이 설치하는 것이 좋다.
워드프레스에서 공식으로 제공하는 Twenty 시리즈 테마도 계속 업데이트가 올라온다. 특히 style.css 파일을 수정했다면 거의 100% 초기화된다. functions.php 파일과 style.css 파일 자체가 테마에 필수 포함돼야 하는 파일이라, 이 파일이 같이 업데이트되는 상황을 막을 수 없다. 차일드 테마가 애초에 기본 기능으로 제공됐으면 하는 이유다.
차일드 테마를 설치하는 플러그인 중에, 여러 편의 사항을 갖춘 플러그인이 있었던 것으로 기억한다. 부모 테마를 옵션에서 선택하고, 스크린샷을 업로드하는 등의 기능이었다. 나는 그 정도 기능까지는 오버스펙이라 생각해서 가이드 문서를 기준으로 직접 코드 파일을 추가한다.
내 설정인지 테마 설정인지 기억하지 못하는 게 유일한 단점
부모 테마 업데이트 노트에서 본 개선 사항이 업데이트 후에도 반영되지 않는 경우가 정말 간혹 있다. 혹은 업데이트 노트 자체가 내가 추가한 수정 내용과 겹칠 때도 있다. 이럴 때 부모 테마의 선언자나 선언 방식이 차일드 테마에 넣은 내용과 충돌하거나 겹치는 상황이 나올 수 있단 의미다.
차일드 테마에 넣은 코드를 내가 온전히 다 기억하기는 쉽지 않다. 그래서 내 설정인지 기억하지 못하는 게 유일한 단점이 된다. 어쩌면 이 단점은 나로 인해 생긴 건지도 모르겠다. 내 기억력이 딸린 탓이니까. 그렇다고 사이트 설정을 모조리 외우고 오랜 시간을 보낸다는 것도 현실적으로 불가능하다.
차일드 테마에 추가한 기능이 너무 많아져도 문제가 될 수 있겠단 생각은 든다. 하지만, 이젠 우리에게 AI가 있지 않은가. 종종 겹치는 기능인지 아닌지 AI에게 검수를 요청하면 된다. 참 좋지 아니한가.
나중에 내가 보기 위해 남기는 초기 코드
functions.php
<?php
// Child Theme Start
add_action( 'wp_enqueue_scripts', 'grand_sunrise_enqueue_styles' );
function grand_sunrise_enqueue_styles() {
wp_enqueue_style(
'grand-sunrise-parent-style',
get_parent_theme_file_uri( '/style.css' )
);
}
style.css
/**
* Theme Name: (Theme Name)
* Template: (Parents Theme Directory Name)
* ...other header fields
*/
테마 정보
테마를 눌러보면 테마 이름, 버전, 제작자, 설명 등등 테마 정보가 나온다.
이런 정보는 style.css 헤더 부분에 추가한다.

Twenty Twenty-Five 테마를 기준으로 열어보면, 정말 정직하게 많은 내용이 들어있다.
/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/
대략 참고해서 넣으면 비슷한 모양새를 갖출 수 있다.
스크린샷은 screenshot.png 파일로 따로 만들어서 올리면 된다.
나는 지금 나 혼자 쓰는 차일드 테마이므로 따로 다른 정보를 넣진 않았다. 어떤 이들은 1 byte라도 아끼기 위해 style.css 파일에 너무 많은 헤더 정보가 들어가는 것을 싫어한다는 이야기도 한다. 무엇이든 과유불급일 테지.
하나씩 수정을 추가할 때마다 같이 수정해 보는 것도 하나의 재미일 수 있지 않을까?
추가할 개선 사항
- 링크 삽입 시 새 창이나 새 탭에서 열리도록 옵션이 기본으로 활성화할 방법 찾기
- 추가할 개선 사항 단락은 계속 넣을 것 같은데, 하나의 특정 블럭 스타일을 만들어둘까
블럭 테마 스타일
나는 테마 전체를 만들 깜냥도, 만들 생각도 없다. 잘 있는 테마 빌더를 쓰면서 차일드 테마에 필요한 요소만 하나하나 추가해서 썼고, 앞으로도 그럴 예정이다.
종종 워드프레스 문서나 공식 파일을 디렉터리에서 살펴보다 보면, 버전업에 맞춰서 이런저런 구조가 바뀌는 것을 본다. 블럭 테마가 되면서 등장한 theme.json 파일이 한 예시가 될 듯. 지금 당장은 안 쓰지만, 어느 날 AI가 답변으로 theme.json을 주는 날이 오면, 그날 살펴봐야겠다.