* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
(워드프레스 해부 ㉗) 테마
워드프레스 테마는 지금 두 세대가 공존한다 — 클래식 테마와 블록 테마. 이 차이를 모르면 “내 테마엔 왜 사이트 편집기가 없지?” 같은 데서 막힌다.
가장 눈에 띄는 차이는 사이트 편집기(외모 → 편집기)의 유무다. 블록 테마는 헤더·푸터·글 레이아웃까지 전부 블록으로 편집기에서 바꾼다. 클래식은 그게 없고 PHP 템플릿 파일(15편)을 코드로 고친다.
직접 해보기
# 활성 테마가 블록 테마인지 확인 — templates 폴더와 theme.json 유무
$ wp theme list --status=active
$ ls wp-content/themes/$(wp theme list --status=active --field=name)
# templates/ theme.json 이 있으면 블록 테마
✅ 확인 — 외모 메뉴에 “편집기”가 있으면 블록 테마, “사용자 정의하기”만 있으면 클래식 테마다. 테마 폴더에
theme.json이 있는지로도 구분된다.
한눈에 비교
| 항목 | 클래식 테마 | 블록 테마 |
|---|---|---|
| 템플릿 | PHP 파일(single.php) | HTML 파일(single.html) |
| 편집 방식 | 코드 + 사용자 정의하기 | 사이트 편집기(FSE) |
| 스타일 중심 | style.css · functions.php | theme.json |
| 헤더·푸터 | header.php · footer.php | 템플릿 파트 |
| 대상 | 개발자·기존 생태계 | 코드 없이 편집 |
FSE — 블록 테마가 여는 것
블록 테마의 핵심은 풀 사이트 편집(FSE)이다. 예전엔 본문만 블록으로 편집하고 헤더·푸터·아카이브는 코드를 만져야 했다. 블록 테마에선 헤더·푸터·검색·404까지 사이트 전체를 같은 편집기에서 블록으로 손본다. 색·글꼴·간격은 theme.json 한 곳에서 관리한다. ‘코드 없이 레이아웃을 바꾼다’가 이 세대의 가장 큰 변화다.
코드로 보면 — 같은 템플릿, 두 세대
‘PHP 파일 vs HTML 파일’이 실제로 어떻게 다른지 single 템플릿의 첫 부분으로 대조하면 감이 확실해진다.
// 클래식 — single.php (PHP가 흐름을 쥔다)
<?php get_header(); ?>
<main>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
</main>
<!-- 블록 — templates/single.html (전부 블록 마크업) -->
<!-- wp:template-part {"slug":"header"} /-->
<!-- wp:post-title {"level":1} /-->
<!-- wp:post-content /-->
<!-- wp:template-part {"slug":"footer"} /-->
클래식은 PHP 함수 호출(the_title())이고, 블록은 23편에서 본 블록 주석이 템플릿 언어까지 겸한다. 후자는 코드가 아니라 데이터라서 사이트 편집기가 시각적으로 고칠 수 있는 것이다 — 두 세대의 차이는 결국 템플릿이 코드냐 데이터냐다.
그래서 뭘 골라야 하나
새로 시작한다면 블록 테마가 방향이다. 워드프레스가 공식적으로 밀고 있고 기본 테마(Twenty Twenty-Five 등)도 전부 블록 테마다. 다만 특정 클래식 테마나 페이지 빌더 생태계에 이미 묶여 있다면 클래식이 현실적이다. 테마는 하나만 쓰니 둘을 섞을 순 없고, 전환은 ‘콘텐츠는 남기고 디자인만 다시 잡는’ 작업이라 여유를 두고 한다.
전환할 때 주의할 것
클래식에서 블록으로 넘어갈 때, 글·페이지 내용 자체는 그대로 남는다. 하지만 위젯·메뉴·Customizer로 잡아둔 것들은 블록 테마 방식(템플릿 파트·내비게이션 블록·theme.json)으로 다시 구성해야 한다. 특히 페이지 빌더로 만든 화면은 블록으로 옮기는 데 손이 많이 가니, 전환 전에 어떤 걸 다시 만들어야 하는지 목록부터 뽑는 게 좋다.
참고 — 이 블로그도 블록 테마다
추상적으로 들릴까 봐 덧붙이면, 지금 이 cozlab 사이트가 블록 테마(Twenty Twenty-Five) 위에서 돈다. 헤더의 로고·검색, 홈의 카드 그리드, 글 하단 레이아웃까지 전부 사이트 편집기와 theme.json으로 잡았다. 예전 같으면 PHP 템플릿을 열어 고쳤을 것들을, 블록으로 만지고 있다.
한 가지 더. 클래식과 블록의 중간인 하이브리드 테마도 있다. 클래식 구조를 유지하면서 일부 화면만 블록 템플릿으로 지원하는 식인데, 기존 테마를 블록으로 점진적으로 옮길 때 징검다리로 쓴다. 다만 새로 시작하는 사이트라면 처음부터 순수 블록 테마로 가는 편이 헷갈릴 일이 없다.
이 사이트가 쓰는 블록 테마의 심장, 다음 편은 theme.json이다. 색·폰트·간격이 다 여기서 나온다.
자주 묻는 질문 (FAQ)
클래식 테마와 블록 테마는 뭐가 다른가요?
클래식은 PHP 템플릿으로, 블록 테마는 HTML 템플릿+theme.json으로 사이트 전체를 블록으로 편집(FSE)합니다.
지금은 뭘 골라야 하나요?
새로 시작한다면 블록 테마(FSE)가 방향입니다. 다만 익숙함·플러그인 호환성 때문에 클래식도 여전히 많이 씁니다.

답글 남기기