게시판 리스트 페이지에서
total에 대해 list.php에
<?php echo number_format($board->getListTotal())?>되어 있습니다.
조건을 변경해서 리스트페이지를 구현하고 싶은데...
getListTotal()에서는 return intval($this->meta->list_total); 게 받아오네요...
중간에 들어가 있는 if문은 조건해당이 안되어서 pass하고 getListTotal()에 바로 return되는 값을 찍어보니 이미 id값이 들어가 있는데요.
echo $this->meta->list_total;
이값을 어디에서 셋팅해 주는 건가요?
public function getListTotal(){
global $wpdb;
if(!$this->id){
return 0;
}
if(!$this->meta->list_total || $this->meta->list_total<=0){
$this->meta->list_total = $this->getTotal();
$results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$this->id' AND `status`='trash'");
foreach($results as $row){
$content = new KBContent();
$content->initWithRow($row);
$content->board = $this;
$content->moveReplyToTrash($content->uid);
}
}
return intval($this->meta->list_total);
}
KBoard 클래스 보시면 getTotal() 메소드와 getListTotal() 메소드가 있습니다.
찾으시는 값은 getTotal() 메소드에서 값을 가져옵니다.
/**
* 게시판에 등록된 전체 게시글 숫자를 반환한다.
* @return int
*/
public function getTotal(){
global $wpdb;
if(!$this->id){
return 0;
}
if(!$this->meta->total || $this->meta->total<=0){
$this->meta->total = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$this->id'");
}
return intval($this->meta->total);
}
/**
* 게시판 리스트에 표시되는 게시글 숫자를 반환한다.
* @return int
*/
public function getListTotal(){
global $wpdb;
if(!$this->id){
return 0;
}
if(!$this->meta->list_total || $this->meta->list_total<=0){
$this->meta->list_total = $this->getTotal();
$results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$this->id' AND `status`='trash'");
foreach($results as $row){
$content = new KBContent();
$content->initWithRow($row);
$content->board = $this;
$content->moveReplyToTrash($content->uid);
}
}
return intval($this->meta->list_total);
}
그런데 이전 질문 보니, KBoard 클래스와 메소드를 수정하는건 올바른 해결책은 아닌 듯합니다.
KBContentList 클래스를 사용하시면 리스트를 가져오실 수 있습니다.
스킨에 아래 코드를 추가해서 응용해보세요.
<?php
$board_id = 1;
$content_list = new KBContentList($board_id);
$content_list->getList();
echo $content_list->total;
?>