카테고리별로 태그 클라우드 표시하기

Tag Cloud간혹 사이트를 보면 개별 카테고리에 위의 그림과 같이 슬라이드 아래에 태그들이 표시되어 있는 경우가 있습니다. 위와 같은 기능을 워드프레스에 추가하는 방법을 간략히 살펴보겠습니다.

먼저는 태그 클라우드(태그 구름)를 추가할 위치를 선정해야 합니다. 위의 그림과 같이 슬라이드 아래에 추가 하려는 경우 적절한 위치에 "위젯 영역"을 만들거나 해당 위치에 코드를 직접 삽입할 수 있습니다. 만약 플러그인을 사용하여 숏코드를 추가하려는 경우에는 위젯 영역이 편리할 것입니다. 그렇지 않고 직접 코드를 삽입하는 경우에는 PHP 코드를 테마 파일에 추가하는 방법을 생각해볼 수 있습니다.

다음으로 어떤 방법으로 태그 클라우드를 구현할 것인가를 고려해야 합니다.

플러그인을 사용할 경우:

태그 클라우드 플러그인은 많지만 카테고리별로 지원하는 플러그인은 드뭅니다. 카테고리별로 필터링해 주는 워드프레스 플러그인으로 WP Category Tag Cloud라는 플러그인이 있습니다. 이 플러그인은 다양한 방식으로 태그 클라우드를 표시해줍니다. 그러므로 WP Category Tag Cloud를 사용하면 별도의 레이아웃 작업을 하지 않거나 최소한의 레이아웃 작업으로 위의 그림과 같은 효과를 얻을 수 있습니다. 다만, 이 플러그인을 사용해보니 제대로 작동하는 경우도 있지만 제대로 작동하지 않는 경우도 발생하는 것 같습니다. 설치하여 제대로 작동하는지 확인이 필요합니다.

직접 코드를 사용할 경우:

직접 코드를 사용할 경우 해당 코드를 테마 파일(예: category.php)의 적당한 위치에 추가해야 합니다. Josh Stauffer 사이트에서 소개한 소스를 적절한 위치에 추가하도록 합니다. $custom_query = new WP_Query('posts_per_page=-1&category_name=blog'); 라인에서 카테고리 이름을 적절히 바꾸어 주거나 이 라인을 새로 수정하여 현재 카테고리를 표시하도록 해야 합니다.

또는, 다음과 같은 소스를 사용할 수도 있습니다.

$catid = get_cat_ID(single_cat_title("",false));
$catobj = get_category($catid);
$catslug = $catobj->slug;
$all_tags_arr = array();
query_posts('category_name='.$catslug);
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags_arr[] = $tag -> term_id;
}
}
endwhile; endif;

$tags_arr = array_unique($all_tags_arr);

$tagcloud_args = array(
'include'   =>  implode(',',$tags_arr),
);

wp_tag_cloud( $tagcloud_args );
wp_reset_query();
// Source: http://stackoverflow.com/

직접 코드를 테마 파일에 추가하는 경우 CSS를 통해 레이아웃을 조정해주어야 합니다.

 

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.