안녕하세요.
이전에 이와 비슷한 질문을 올린 적이 있었는데 너무 오래되었고, 그 때 답변을 주셨었는데 혼자 작업해보니 생각보다 잘 해결되지 않아 다시 질문을 올려서 여쭤보려고합니다.
현재 아래와 같은 구성을 준비중에 있습니다.
A팀, B팀, C팀은 kboard 게시판에서 카테고리로 설정하려고 합니다.
이렇게 한 게시판 안에서 카테고리별로 다르게 정렬하는 방법을 구성할 수 있을까요?
이전에 add_action()을 통해 DB쿼리문의 SELECT절을 편집하면 되고,
kboard_list_from과 kboard_list_where을 편집하면 된다고 하셨는데, 사실 이 내용을 제대로 이해하지 못했습니다.
가능하시다면 예제 코드를 하나 보여주실 수 있으실까요?
안녕하세요~^^
우선 단순하게 불러오는 게시판 목록 자체에서
위 레이아웃으로 정렬하시려는 것인지
불러오는 것 자체를 정렬하려는 것인지
혹은 각 카테고리 별로 최신글들을 불러오려고 하는 것인지
정하셔야 할 듯 합니다.
목록 내에서 카테고리를 나누고자 하신다면
list.php 파일의 while 문 안에서 조건문으로 정리해볼 수 있을 듯 합니다.
<?php
<?php while($content = $list->hasNext()):?>
...
if($content->category1 == ''){
// 코드 입력
}
...
<?php endwhile?>
?>
해당 카테고리 전체를 불러오시려면
KBContentList 클래스의 인스턴스를 새로 생성해주셔야 합니다.
아래의 코드를 참고하여 적용해보시겠어요?
<?php
$new1 = new KBContentList($board->id);
$new1->category1('1번 카테고리');
$new1->getList();
?>
<table>
<tbody>
<?php while($content = $new1->hasNext()):?>
<tr class="kboard-list-notice<?php if($content->uid == kboard_uid()):?> kboard-list-selected<?php endif?>">
<td class="kboard-list-title">
<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toString()?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
</td>
<td class="kboard-list-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php endwhile?>
</tbody>
</table>
<?php
$new2 = new KBContentList($board->id);
$new2->category1('B');
$new2->getList();
?>
<table>
<tbody>
<?php while($content = $new2->hasNext()):?>
<tr class="kboard-list-notice<?php if($content->uid == kboard_uid()):?> kboard-list-selected<?php endif?>">
<td class="kboard-list-title">
<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toString()?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
</td>
<td class="kboard-list-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php endwhile?>
</tbody>
</table>
코드를 적용하기 어려우시다면
최신글 보기를 활용해볼 수도 있습니다.
최신글 보기에는 카테고리 별로 불러오는 파라미터가 있으므로
해당 기능을 활용하는 방안도 고려해보시겠어요?
고맙습니다.
감사합니다. 해당 카테고리 전체를 불러와서 display 시키려던게 의도였고, 아래쪽에 있는 장문의 긴 내용을 응용해서 적용하니 잘 작동합니다.