Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

워드프레스 테마에서 템플릿 파일 매칭 순서

워드프레스는 테마 전부를 커스터마이징할 수 있다.

커스터마이징을 하고 싶으면 아래 표를 참고해서 테마 폴더에 원하는 걸 매칭되는 이름으로 파일로 만들어 주면 된다.

이 표는 《워드프레스 제대로 파기》의 75페이지에 있는 내용을 옮긴 것이다.

물론 워드프레스 테마 핸드북의 템플릿 체계(Template Hierarchy)나 투츠플러스의 워드프레스 테마 파일 실행 체계(The WordPress Theme Files Execution Hierarchy) 튜토리얼을 봐도 똑같은 내용이 나온다.

그러나 표로 일목요연하게 정리한 것은 《워드프레스 제대로 파기》의 75페이지에 있는 표다.

페이지 타입템플릿 파일 순서
404404.php → index.php
Searchsearch.php → index.php
Taxonomytaxonomy-{tax}-{term}.php → taxonomy-{tax}.php → taxonomy.php → archive.php → index.php
Homehome.php → index.php
Attachment{mime-type}.php → attachment.php → single.php → index.php
Singlesingle-{post-type}.php → single.php → index.php
Page{custom-template}.php → page-{slug}.php → page-{id}.php → page.php → index.php
Categorycategory-{slug}.php → category-{id}.php → category.php → archive.php → index.php
Tagtag-{slug}.php → tag-{id}.php → tag.php → archive.php → index.php
Authorauthor-{author-nicename}.php → author-{author-id}.php → author.php → archive.php → index.php
Datedate.php → archive.php → index.php
Archivearchive-{post-type}.php → archive.php → index.php

예컨대, 검색 결과 페이지를 손보고 싶으면 search.php를 손보면 되는 거다. 404 페이지를 손보고 싶으면 404.php를 손보면 된다. (없으면 만들고 말이다.)

조금 복잡한 사례도 들어 보자.

Alex Callinicos라는 필자가 있고, 이 필자가 쓴 글의 목록을 보여 줄 때는 단지 목록뿐이 아니라 맨 위에 특별한 디자인을 넣고 싶다고 가정하자.

author.phpif문을 사용할 수도 있겠지만, 이 필자만을 위한 파일을 만들 수도 있다.

필자 페이지의 템플릿 파일 중 최우선순위에 있는 author-{author-nicename}.php를 주목하자.

Alex Callinicos의 nicename이 alex-callinicos라고 한다. 그러면 author-alex-callinicos.php 라는 파일을 만들면 그게 보이게 되는 것이다.

워드프레스 테마 핸드북에 있는 템플릿 체계 이미지(클릭하면 크게 볼 수 있다)

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다