wp_cat

 

내 블로그에 접속하는 사람들은 어떤 루트로 들어올까?

대부분은 검색이나 링크를 통해 들어올 것입니다.

그렇다면 특정 글로 바로 들어올 테고, 더 신경써서 만든 첫 페이지를 보지 않을 수도 있다는 것이지요.

다른 연관된 글들도 소개해 주고 싶은데 이러한 기능을 사이드바에서 주로 합니다.

최근글, 최근 덧글… 등을 통해 해당 글만 보러 온 접속자에게 부가 정보를 제공하지요.

블로그 안에는 여러 카테고리의 글들이 있을텐데, 가령 제 블로그를 기준으로 설명드리자면…

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()” 대신 아래 코드를 넣습니다.

register_sidebars(3); /* 사이드 바를 3개 만듭니다. */

그러면, 데쉬보드->외모->위젯에 여러개의 사이드 바가 나타납니다.
카테고리 개수 만큼 사이드 바를 구성하고 각 사이드바에는 일반 최근 글이 아닌 “RSS” 글목록을 추가합니다.
RSS 피드 URL 구조는 아래와 같습니다.

http://도메인/?feed=rss2&cat=카테고리번호

wp_rss

 

4. 카테고리에 따른 사이드바 출력

아래 코드는 카테고리 코드가 1일 때 2번 사이드바를 출력하고,

카테고리가 2,3,4 일 때 3번 카테고리 출력,

그 외에는 기본적으로 1번 사이드바를 출력합니다.

<?php
$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>

댓글 남기기