WP 테마 파헤치기1 – 파일구조
워드프레스 한글언어팩에 기본 테마는 이미 곰님의 수정으로 사용하는데 무리가 없지만, 해외에서 제작된 250여개가 넘는 워드프레스 테마를 만끽하기 위해선 테마 파일의 수정이 반드시 필요하다. 코덱스에 워드프레스의 테마를 구성하는 파일들을 간단하게 설명하고 있지만, 내 나름대로, 테터툴의 스킨과 비교하여 조금은 구체적으로 파헤처 볼 생각이다.
기본적으로 워드프레스에서 반드시 필요한 파일은 기본 템플릿 파일인 index.php 이다. 테터툴과 마찬가지로 index.php 파일 하나만으로도 블로그를 구성할 수는 있다. 테마 만드는 사람 마음일 것이다. 다만, 답글까지 한꺼번에 보여준다면, 아니 보여주지 않고 숨겨놓더라도 파일을 읽는데 소요되는 시간은 상당할 것이다. 즉, 파일의 크기나 트래픽량의 증가는 감수할 수 있다면, index.php 파일 하나만으로도 상관없다.
이런 이유에서 워드프레스에서 또 하나의 중요한 파일이 single.php 이다. 파일명처럼 글 하나를 볼때 사용되는 파일이다. single.php 와 함께 다니는 파일은 comment.php 이다. 답글(꼬릿말)이나 트랙백, 핑백의 내용을 보여주며 답글을 작성할 수 있도록 하는 파일이다. 트랙백 주소도 이곳에 표현된다.
Style.css 는 구조화된 워드프레스 테마 템플릿의 시각적인 부분을 담당한다.이미지, 배경색/이미지/아이콘, 폰트 크기/색, 박스 크기/색 등 눈으로 볼 수 있는 대부분을 정의하는 파일이다. 이는 인라인 스타일을 사용하는 대부분의 테터툴 스킨과 다른점이다.Style.css를 수정하기 위해서는 Topstyle pro 3과 같은 프로그램을 이용하는 것이 편리할 것이다.
여기까지만 보면, 테터툴의 index.php 파일을 워드프레스에서는 index.php + single.php + comment.php + style.css 파일로 쪼개 논 것 같다. 맞다. 파일의 효율성을 위해서 독립시킨 것이다. 여기에 다양한 레이아웃을 보여줄 수 있도록 category.php achive.php
예전에 한번 비교해보니 워드프레스 기본테마의 필수 파일 3가지(style.css 제외)를 합친 것이 테터툴 기본스킨의 index.php 파일보다 크기가 훨씬 작았던 것으로 기억난다. 이는 table 레이아웃과 div + css 레이아웃의 차이점이랄 수 있다.
아래는 일반적으로 워드프레스의 테마에 포함된 파일 구조이다.
- inde.php : 기본 템플릿 파일 (대부분 아래의 파일로 분리됨)
- header.php : 상단에 항상 표현되는 파일
- footer.php : 하단 항상 표현되는 파일
- style.css : 기본 스타일 파일 (경우에 따라 아래 파일들로 분리됨)
- layout.css : 레이아웃을 구성하는 파일
- default.css : 기본적인 클랙스나 아이디를 구성하는 파일
- print.css : 블로그 내용을 프린트할 때 사용되는 파일
- single.php : 글 하나만 볼 때 사용되는 파일
- comment.php : 답글을 쓸때 사용되는 파일
- comment-popup.php : 팝업창으로 답글을 쓸때 사용되는 파일
- sidebar.php : 사이드바(메뉴)를 구성하는 파일
- sidebar-left.php : 3단 구조에서 왼쪽 사이드바를 구성하는 파일
- sidebar-right.php : 3단 구조에서 오른쪽 사이드바를 구성하는 파일
- search.php : 검색결과를 보여주는 파일
- archive.php : 글 묶음을 볼 때 사용되는 파일
- category.php : 글의 분류에 따라 글을 볼때 사용
- date.php : 년, 월, 일별로 글을 볼 때 사용
- page.php : 블로그 글과 다른 정적인 형식인 페이지를 볼때 사용
- archives.php : 기본적인 페이지 템플릿
- author.php : 블로그 주인을 소개할 때 사용하는 페이지 템플릿
- contact.php : 이메일을 발송할 관련 페이지의 템플릿
- link.php : 링크 관련 페이지의 템플릿
- 404.php : 블로그에 없는 파일을 찾을 때 보여주는 파일
이렇게 많은 파일들은 페이지 로딩속도 향상과 레이아웃의 다양화를 위해서 반드시 분리되야 한다고 생각한다.
수정 : 워드프레스의 테마에 대한 자세한 설명은 UrbanGiraffes님의 블로그에서 확인할 수 있다.