구매한 테마의 여백이 마음에 들지 않아 테마 폴더 안의 CSS 를 열어 고칩니다. 화면이 바뀌고, 문제가 해결된 것처럼 보입니다. 그리고 몇 주 뒤 업데이트 버튼을 누르는 순간 그 수정이 통째로 사라집니다. 디자이너가 워드프레스에서 처음 만나는 가장 허무한 경험입니다.
이것은 워드프레스의 결함이 아닙니다. 오히려 제대로 동작하고 있다는 증거입니다. 그 사실을 받아들이면 해야 할 일이 하나로 좁혀집니다 — 내 수정을 교체되지 않는 자리에 두는 것입니다.
업데이트가 실제로 하는 일
테마 업데이트는 파일을 하나씩 비교해 바뀐 줄만 반영하는 작업이 아닙니다. 기존 테마 폴더를 지우고 새 버전 폴더를 그 자리에 놓습니다. 그래야 제작자가 고친 보안 문제와 버그가 빠짐없이 도착합니다. 만약 업데이트가 우리 수정을 알아서 피해 간다면, 그것은 곧 어떤 파일은 옛 버전으로 남는다는 뜻이고, 취약점이 그 파일에 있었다면 그대로 남습니다.
그래서 관리자 화면의 테마 편집기로 부모 테마 파일을 고치는 것은 두 번 위험합니다. 업데이트에서 사라지고, 편집기 자체가 관리자 계정이 털렸을 때 서버에 코드를 심는 가장 빠른 통로이기도 합니다. 운영 사이트에서 이 편집기를 꺼 두는 것은 불편이 아니라 정상적인 설정입니다.
자식 테마가 하는 일
자식 테마는 별도의 테마 폴더인데, “나는 이 테마를 부모로 삼는다” 고 선언한 것뿐입니다. 워드프레스는 화면을 그릴 때 자식 테마를 먼저 보고, 없는 것만 부모에서 가져옵니다. 스타일도 템플릿도 같은 규칙을 따릅니다.
중요한 것은 자식 테마가 부모를 대체하지 않는다는 점입니다. 부모 테마는 그대로 설치돼 있고 계속 업데이트를 받습니다. 자식 테마는 그 위에 얹는 얇은 층이고, 우리가 소유하는 것은 그 층뿐입니다.
얇게 유지하는 것이 핵심입니다. 자식 테마에 넣은 파일 하나하나는 우리가 앞으로 관리할 파일이므로, 넣을 이유가 분명한 것만 넣습니다. 이 원칙은 4회차의 템플릿 오버라이드에서 다시 나옵니다.
그래서 어디에 무엇을 두는가
디자인 변경을 둘 수 있는 자리는 실제로 세 곳이고, 위에서부터 고르는 것이 좋습니다.
테마가 색이나 로고에 대한 설정을 이미 제공한다면 그것을 씁니다. 설정으로 표현할 수 없는 디자인 결정만 자식 테마의 CSS 로 내려갑니다. 그리고 테마를 언젠가 바꿔도 남아야 하는 것(문의 폼, 구조화된 콘텐츠 같은 기능)은 테마가 아니라 플러그인 쪽에 있어야 합니다 — 테마와 함께 사라지면 안 되는 것들입니다.
테마 선택이 유지보수에 미치는 영향은 테마 · 플러그인 아카이브에서 더 다루고, 이미 부모 테마를 직접 고쳐 둔 사이트를 정리하면서 업그레이드까지 받고 싶다면 최적화 지원 사업에 그 작업이 포함됩니다.
다음 회차
다음 회차에서 자식 테마를 실제로 만듭니다. 파일 두 개면 끝나는데, 그중 스타일 로드 순서를 잘못 잡으면 CSS 를 아무리 써도 안 먹는 상태가 됩니다.