워드프레스에서 사용자 정의 페이지 템플릿 만들기
워드프레스에서는 기본적으로 다음과 같은 5개의 기본 포스트 타입(글 유형)을 제공합니다.
- 글 (Post Type: 'post')
- 페이지 (Post Type: 'page')
- 첨부파일 (Post Type: 'attachment')
- 리비전 (Post Type: 'revision')
- 내비게이션 메뉴 (Post Type: 'nav_menu_item')
글 유형에 대한 자세한 내용은 WordPress Codex 페이지에서 확인할 수 있습니다.
페이지의 경우 레이아웃은 보통 page.php 파일에 의해 제어됩니다. 사용 중인 테마에 따라 여러 가지 페이지 템플릿이 제공될 수 있습니다. 예를 들어, Enfold 테마에서는 다음과 같이 3가지 페이지 템플릿이 제공됩니다.
참고로 Enfold에서는 페이지 템플릿 수가 적은 편이지만 페이지 편집 화면에서 Layout 옵션을 제공하여 보다 세밀히 페이지 레이아웃 옵션을 조정할 수 있습니다. 가령 Sidebar Settings(사이트바 설정)를 통해 해당 페이지의 사이드바 배치를 제어할 수 있습니다. (Enfold 테마는 Enfold 테마만으로 고객 사이트를 제작하는 사람이 있을 정도로 괜찮은 테마 같습니다. Avada도 괜찮지만 개인적으로는 조금 무겁다는 느낌이 나는 테마입니다.)
테마에 따라 기본 템플릿 외에 다른 템플릿이 없을 수 있습니다. 페이지 템플릿을 직접 만드려면 페이지 템플릿 파일이 다음과 같이 시작하도록 하면 됩니다.
<?php /* Template Name: 템플릿 이름 */
예를 들어, Enfold 테마의 "Blank - No Header, no Footer" 템플릿의 경우 파일 이름이 template-blank.php로 되어 있고 php 파일의 내용은 다음과 같이 비교적 단순합니다.
<?php /* Template Name: Blank - No Header, no Footer */ if ( !defined('ABSPATH') ){ die(); } /* * A blank Template that allows you to build landing pages, coming soon pages etc */ global $avia_config; $avia_config['template'] = "avia-blank"; //important part. this var is checked in header and footer php and if set prevents them from rendering. also an additional class is applied to the body if(!empty($avia_config['conditionals']['is_builder'])) { $avia_config['conditionals']['is_builder_template'] = true; get_template_part('template-builder'); exit(); } else { get_template_part('page'); exit(); }
위에서 "Template Name: Blank - No Header, no Footer" 부분이 템플릿 이름을 지정하는 라인입니다. 위와 같이 파일을 저장하면 페이지 편집 화면의 페이지 속성 > 템플릿에서 "Blank - No Header, no Footer"를 선택할 수 있게 됩니다.
참고로 기본적으로 제공되는 글 유형 외에 사용자가 직접 글 유형을 만들 수 있습니다. 여기에서 사용자 정의 글 유형(커스텀 포스트 타입)을 만드는 방법을 살펴볼 수 있습니다.