cafe24-frontpage cafe24-frontpage

워드프레스 케이보드 게시판, 카테고리별 게시글 수 표시하는 방법

케이보드 기본 리스트 상단에 보이는 전체 게시글 N건 숫자는 필터/검색과 상관없이 “게시판 전체 글 수”를 그대로 보여주는 구조라서, 카테고리 변경 시 자동으로 바뀌지 않습니다. 다만 스킨 파일을 약간 수정해서 “선택된 카테고리의 게시글 수”를 따로 표시하는 것은 가능합니다

케이보드 기본 리스트 상단에 보이는 전체 게시글 N건 숫자는 필터/검색과 상관없이 “게시판 전체 글 수”를 그대로 보여주는 구조라서, 카테고리 변경 시 자동으로 바뀌지 않습니다. 다만 스킨 파일을 약간 수정해서 “선택된 카테고리의 게시글 수”를 따로 표시하는 것은 가능합니다.github+3

동작 방식 이해

  • 전체 게시글 N건KBoard::getListTotal()에서 게시판 전체 글 수를 한 번 계산해서 메타에 저장하고, 그 값을 그대로 출력합니다.github

  • URL 파라미터로 category1, category2 등을 바꿔도 이 값은 다시 계산되지 않기 때문에, “카테고리별 글 수”로 자동 전환되지는 않습니다.thewordcracker+1

카테고리별 게시글 수 구하는 방법

케이보드에는 카테고리별 글 수를 구하는 전용 메서드 getCategoryCount()가 있습니다.github

  • 시그니처: public function getCategoryCount($category)

  • 예: $board->getCategoryCount(array('category1' => '공지')); 처럼 배열로 카테고리 조건을 넘겨주면 해당 카테고리의 게시글 수를 돌려줍니다.cosmosfarm+1

스킨에서 카테고리별 카운트 표시 예시

카테고리 탭/리스트 근처에 각 카테고리 글 수를 붙이는 대표적인 예시는 다음과 같습니다.cosmosfarm+1

php
<?php if($board->initCategory1()): ?> <ul class="kboard-category-list"> <?php while($board->hasNextCategory()): ?> <?php $category_name = $board->currentCategory(); $category_count = $board->getCategoryCount(array('category1' => $category_name)); ?> <li<?php if(kboard_category1() == $category_name): ?> class="kboard-category-selected"<?php endif; ?>> <a href="<?php echo $url ->set('category1', $category_name) ->set('pageid', '1') ->set('target', '') ->set('keyword', '') ->set('mod', 'list') ->toString(); ?>"> <?php echo esc_html($category_name); ?> <?php if($category_count): ?>(<?php echo intval($category_count); ?>)<?php endif; ?> </a> </li> <?php endwhile; ?> </ul> <?php endif; ?>
  • 위 코드는 list-category-default.php 또는 사용 중인 스킨의 카테고리 영역에 넣어 쓰는 패턴과 동일한 방식입니다.cosmosfarm

  • category1, category2 등 현재 사용 중인 카테고리 계층에 맞게 키 이름만 바꿔서 쓰면 됩니다.thewordcracker+1

“전체 게시글” 텍스트를 바꾸고 싶다면

리스트 상단 전체 게시글 ~건 자체를 “현재 카테고리 게시글 ~건”으로 바꾸려면:

  • 스킨의 리스트 상단에서 getListTotal() 값 대신,

    • 카테고리 파라미터가 있을 때는 getCategoryCount() 결과를,

    • 없을 때는 기존 전체 글 수를 표시하도록 조건 분기 코드를 추가하면 됩니다.cosmosfarm+1

예를 들어 (개념 예시):

php
<?php $current_category = kboard_category1(); if ($current_category) { $count = $board->getCategoryCount(array('category1' => $current_category)); } else { $count = $board->getListTotal(); } ?> <div class="kboard-total-count"> 전체 게시글 <?php echo intval($count); ?>건 </div>

사용 중인 스킨 파일 이름(예: list.php, list-top.php)과 카테고리 구조(category1/category2)를 알려주면, 여기에 맞춘 실제 수정용 코드를 바로 정리해서 줄 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다