내 블로그에 접속하는 사람들은 어떤 루트로 들어올까?
대부분은 검색이나 링크를 통해 들어올 것입니다.
그렇다면 특정 글로 바로 들어올 테고, 더 신경써서 만든 첫 페이지를 보지 않을 수도 있다는 것이지요.
다른 연관된 글들도 소개해 주고 싶은데 이러한 기능을 사이드바에서 주로 합니다.
최근글, 최근 덧글… 등을 통해 해당 글만 보러 온 접속자에게 부가 정보를 제공하지요.
블로그 안에는 여러 카테고리의 글들이 있을텐데, 가령 제 블로그를 기준으로 설명드리자면…
IT 관련 글을 보러 왔는데 사이드바에 식물 관련 글이 노출된다면 연관성이 낮아집니다.
어떤 글을 보느냐에 따라 관련 카테고리 최신 글들을 노출한다면 더 좋겠지요.
1. 현재 글의 카테고리 정보 얻기
아래와 같이 single.php 등에서 카테고리 아이디를 가져올 수 있습니다.
$category = get_the_category();echo $category[0]->cat_ID;
2. 카테고리에 따른 예외처리
$category = get_the_category();
if( $category[0]->cat_ID == 1 ){ /* A */ }
else { /* B */ }
3. 멀티 사이드바 구성
위 소스코드를 가지고 카테고리에 따라 다른 사이드바를 가져올 계획입니다.
이를 위해 멀티 사이드바를 구성해야겠지요.
function.php에 “register_sidebar()” 대신 아래 코드를 넣습니다.
그러면, 데쉬보드->외모->위젯에 여러개의 사이드 바가 나타납니다.
카테고리 개수 만큼 사이드 바를 구성하고 각 사이드바에는 일반 최근 글이 아닌 “RSS” 글목록을 추가합니다.
RSS 피드 URL 구조는 아래와 같습니다.
4. 카테고리에 따른 사이드바 출력
아래 코드는 카테고리 코드가 1일 때 2번 사이드바를 출력하고,
카테고리가 2,3,4 일 때 3번 카테고리 출력,
그 외에는 기본적으로 1번 사이드바를 출력합니다.
$category = get_the_category();if( $category[0]->cat_ID == 1){ $sidebarID = 2; }
else if( $category[0]->cat_ID == 2 ||
$category[0]->cat_ID == 3 ||
$category[0]->cat_ID == 4 ){ $sidebarID = 3; }
else{ $sidebarID = 1; }
?><div class=”sidebar-box”>
<?php dynamic_sidebar($sidebarID); ?>
</div>
0 Comments