리스트페이지 total 가져오기....

게시판 리스트 페이지에서

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;
    ?>

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기