그림 1)은 이전에 한 번 사용했던 이미지인데, 현재 제 블로그의 레이아웃입니다. 흔히 2단이라고해서 본문 영역 왼쪽이나 오른쪽에 블로그 날개(sidebar) 영역이 하나 뿐인 구조입니다.
header, sidebar, footer 영역은 개별 템플릿 파일(header.php, sidebar.php, footer.php)로 분리되어 있습니다. 그리고 이 세 파일을 불러와 content 영역에 작성된 포스트 내용을 채워서 화면에 보여주는 텔플릿 파일에는 index.php, single.php, category.php, archive.php, search.php 등이 있습니다.
이 글에서는 블로그 첫화면(index.php or home.php), 포스트(single.php), 카테고리 페이지(category.php or category-id.php), 방명록 페이지(page.php or guestbook.php)에 각각 다른 sidebar-#no.php 파일을 불러와 사이드바 영역에 다른 내용을 보여주는 방법에 대해 알아 보겠습니다.

그림 1) 블로그 레이아웃
작업 과정
우선 사용 중인 테마 파일에 있는 php 파일은 따로 사본을 만들어 두시기를 권합니다. 간단한 과정이지만 혹시 실수를 했을 때를 대비해서 말이지요. 작업 과정은 크게 네 단계로 나누었습니다.
- 사용할 사이드바의 수 결정, functions.php 파일 코드 수정
- sidebar.php 파일을 필요한 사이드바 수만큼 복사, 이름은 sidebar1.php, sidebar2.php, sidebar3.php 식으로 지정, 각각의 파일 코드 수정
- index, single, category, guestbook 템플릿 파일을 열어 원하는 사이드바를 불러올 수 있도록 코드 수정, 수정한 전체 파일 업로드
- 관리자화면 > Appearance > Widgets 에서 각각의 사이드바에 위젯 추가
이 글에서 소개할 방법은 Appearance > Widgets에 사용가능한 사이드바의 이름이 sidebar 1, sidebar 2, sidebar3 식으로 나타나기 때문에 인지하기 쉽지 않은 단점이 있습니다. 하지만 frontpage, singlepost, category, guestbook 처럼 이름이 나타나게 하는 방법보다는 쉽게 이해할 수 있다는 장점이 있어 이 방법을 택했습니다. 그리고 당연히 테마에 따라 이 방법을 적용할 수 없는 경우도 있습니다. 1단계에 나오는 코드가 변형된 경우라면 다른 방법을 찾아 보셔야 될 것입니다.
1단계
이 글에서는 블로그 첫화면, 포스트, 카테고리, 방명록 페이지에 각각 다른 사이드바를 적용할 것이기 때문에 필요한 사이드바의 수를 4개로 정했습니다. 아카이브(archive.php)와 검색결과(search.php) 페이지에도 다른 사이드바를 적용하고 싶으시다면 수를 늘려 잡으시면 됩니다. 만약 카테고리 페이지별로 각각 다르게 사이드바 영역을 꾸미고 싶으시다면 카테고리 수도 계산에 넣으세요.
<?php if ( function_exists(‘register_sidebar’) )
register_sidebars(4, array(
‘before_widget’ => ‘<div id=”%1$s” class=”widget”><div class=”widget-top”>’,
‘after_widget’ => ‘</div></div>’,
‘before_title’ => ‘<h2>’,
‘after_title’ => ‘</h2></div><div class=”widget-entry”>’,
));
?>
사용 중인 테마 디렉토리에서 functions.php 파일을 열어보면 위와 같은 코드가 있을 것입니다. 빨간색으로 나타낸 2번째 줄의 array 앞에 필요한 사이드바의 수를 입력합니다. 코드에서 <div> 태그는 스타일을 적용하는 것이기 때문에 테마별로 클래스 이름에는 차이가 있을 수 있습니다. 이 작업은 FTP에서 해당 파일을 선택한 뒤 View/Edit으로 직접 열어서 편집한 후 저장하시는 것이 편합니다.
변경 내용을 저장해서 계정에 올리셨다면, (관리자화면 > Appearance > Widgets)Current Widgets에서 사용할 수 있는 사이드바에 sidebar 1, sidebar 2, sidebar 3, sidebar 4가 나타납니다.
2단계
테마 디렉토리 또는 폴더에서 sidebar.php 파일을 복사합니다. 이름은 sidebar1.php, sidebar2.php, sidebar3.php, sidebar4.php로 변경합니다. 각각의 사이드바 템플릿을 열면 아래와 같은 코드가 있습니다.
<div id=”sidebar”><div class=”column-220-last”>
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
</div><!– END column –>
</div><!– END sidebar –>
두 번째 줄 dynamic_sidebar 괄호 안에 있는 숫자를 사이드바 이름 끝에 붙인 숫자에 맞추어 줍니다. 예컨대, sidebar4.php 파일은 dynamic_sidebar(4)로 수정해 주시면 됩니다.
3 단계
블로그 첫화면, 포스트, 카테고리, 방명록에 각각 다른 사이드바를 사용하기 위해 index.php에는 sidebar1을, single.php에는 sidebar2를, category.php에는 sidebar3.php, guestbook.php에는 sidebar4.php 파일을 불러올 수 있도록 설정하도록 하겠습니다.
index.php 파일을 열어 코드 아래 쪽을 보시면 아래처럼 include를 이용해 사이드바를 불러오도록한 태그를 볼 수 있습니다. include (’sidebar1.php’) 로 수정해주세요. 포스트에는 sidebar2.php를 불러올 수 있도록 single.php 파일을 열어 include (’sidebar2.php’) 로 수정해주세요. 카테고리와 방명록도 마찬가지 방법으로 수정해주시면됩니다. 수정을 끝마치면 변경사항을 저장한 뒤 계정에 업로드시켜 블로그에 반영시킵니다.
<?php include (’sidebar1.php’); ?>
</div><!– END content –>
</div><!– END container-wrap –>
</div><!– END container –>
<?php get_footer(); ?>
워드프레스의 페이지(Page)를 이용해 방명록을 사용하고 있다고 가정했습니다. 워드프레스의 페이지는 포스트와는 달리 각각의 페이지에 템플릿을 적용할 수 있습니다. 페이지 작성/편집 창에서 화면 오른쪽을 보시면 Attributes 상자가 있고, 그 안에 template이라고 있습니다. Default templage을 선택하시면 테마 디렉토리에 있는 page.php 템플릿을 사용하게 됩니다. 만약 특정 페이지에 독립된 템플릿을 적용하고 싶으시다면, 간단하게 index.php 파일을 복사해서 원하는 이름으로 바꾸시고(이 글에서 사용한 방명록 페이지에 적용한 템플릿의 이름은 guestbook.php로 했습니다.) 해당 php 파일을 열어 아래코드를 <?php get_header(); ?> 아래에 추가해주시면 됩니다.
<?php get_header(); ?>
<?php
/*
Template Name: guestbook
*/
?>
Template Name으로 지정한 guestbook은 페이지(Page) 편집 창에서 Attributes > template에서 다른 템플릿 파일과 이름을 구분할 수 있도록 해줍니다.
카테고리 페이지별로 다른 사이드바를 적용하고 싶으시다면, category.php 파일을 복사해 category-id.php 파일로 이름을 변경해주신 다음 파일을 열어 include (’sidebar5.php’)와 같은 방법으로 수정해주시면 됩니다. category-id.php 파일명에서 id는 카테고리 id입니다. 확인방법은 이 글을 참고하세요. category-id.php 템플릿을 만들어 주지 않은 다른 카테고리 페이지에서는 category.php에서 include 시킨 사이드바가 보여지게 됩니다. 혼동될 수 있는데, 카테고리 페이지는 카테고리 이름을 클릭했을 때 보여지는 페이지를 말합니다. 카테고리 별로 각각의 포스트에 다른 사이드 바를 적용할 수 있다는 것은 아닙니다.
4단계
이제 각각의 사이드바에 원하는 위젯을 끌어다 놓을 차례입니다. Appearance > Widgets 으로 이동해 Current Widgets 에서 원하는 사이드바를 선택한 뒤 Show 버튼을 클릭해 해당 사이드바 설정 페이지로 이동해 Recent Posts, Categories 등 원하는 위젯을 끌어다 놓은 뒤 변경 사항을 저장(Save Changes)시키시면 됩니다.

그림 2) Front page / Category page / Guestbook Page
그림 2)는 각각 다른 사이드바를 적용한 블로그 첫화면(index.php), 워드프레스 플러그인 카테고리 페이지(category-123.php), 방명록 페이지(guestbook.php)의 모습을 뜬 것입니다. 그림이 작고 색상이 비슷해서 별 차이를 못 느끼실 수 있습니다.
나가는 글
보통 사이드바는 부수적인 정보를 전달하거나, 블로그 탐색에 도움을 주기위해, 광고를 달아 수입을 얻기 위한 목적 등으로 사용됩니다. 사이드바 영역에 페이지별로 차별화된 정보를 전달하고 꾸밀 수 있다면 좁은 공간을 더욱 효율적으로 사용할 수 있고, 블로그도 조금 더 다채롭게 보일 것입니다.
워드프레스는 프로그래밍 언어를 전혀 몰라도 쉽게 입맞에 맞게 조율할 수 있습니다. 사이드바에도 개성을 담아 보세요.