베스트 게시판 관련 (읽을 수 없는 문제)

안녕하세요,

 

KBoard(케이보드) 게시판으로 베스트 게시판을 만들어보기 위해 검색하여 아래의 코드를 (코스모스팜 쓰레드 내 출처입니다) 작성하여 적용해 보았으나,

글 정렬은 잘 되지만, 해당 글을 클릭하면 "이동되었다"며 글로 진입하지는 못합니다.

 

해결방법을 부탁 드려요 ㅜㅜ

 

add_filter('kboard_list_where', 'today_best_kboard_list_where', 10, 3);
function today_best_kboard_list_where($where, $board_id, $content_list){
    
    if($board_id == '4'){ // 실제 적용될 게시판의 ID값으로 변경해주세요.
        $date = date('Ymd000000', current_time('timestamp')); // 오늘 0시 기준
        
        $where = "`date`>='{$date}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    }
    
    return $where;
}

add_filter('kboard_list_orderby', 'today_best_kboard_list_orderby', 10, 3);
function today_best_kboard_list_orderby($orderby, $board_id, $content_list){
    
    if($board_id == '4'){ // 실제 적용될 게시판의 ID값으로 변경해주세요.
        $orderby = "(`view`+`vote`) DESC, `date` DESC"; // 조회수와 추천수를 더한 값을 기준으로 정렬
    }
    
    return $orderby;
}

 

고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    KBoard 플러그인 버전이 업데이트되면서

    허가되지 않은 다른 게시판에서 게시글을 불러오는 것을 차단하는 코드가 추가되었습니다.

    게시판마다 권한 설정이 다른데 게시글을 그냥 불러올 수 있다면 문제가 발생될 수 있기 때문입니다.

    아래 코드도 추가해보시겠어요?

    add_filter('kboard_allowed_board_id', 'kboard_allowed_board_id_20200706', 10, 2);
    function kboard_allowed_board_id_20200706($allowed_board_id, $board_id){
    	if($allowed_board_id == '3'){ // 베스트 게시판
    		$allowed_board_id = array('3', '1', '2'); // 자신과 다른 게시판의 ID값을 입력
    	}
    	else if($allowed_board_id == '4'){ // 베스트 오브 베스트 게시판
    		$allowed_board_id = array('4', '1', '2'); // 자신과 다른 게시판의 ID값을 입력
    	}
    	return $allowed_board_id;
    }

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

     

    저희 블로그에도 해당 코드를 추가하도록 하겠습니다.

    고맙습니다.

  • 답변 정말 감사드립니다. 잘 동작하네요.

     

    아직 초보자고 가져다 쓴 코드라 정확한 이해는 어렵지만,

    제가 적용한 (질문에서) 코드가 매일 0시가 되면 글 자체가 업뎃되는 것처럼 보여지는데,

    혹시 최근 24시간 동안의 글이 리스팅되도록 한다거나 하는 식으로 function 수정이 어려울까요?

  • 프로그램 코드를 올려야 할 경우 에디터의 코드 스니펫 삽입 기능을 사용해주세요.

    고맙습니다.

  • 안녕하세요.

    본문에 올려주신 코드는 오늘 0시 이후에 작성된 게시글을 표시하는 코드입니다.

    오늘 0시가 아닌 현재 시간을 기준으로 24시간 전의 글을 표시하고 싶으신 건지요?

    올려주신 코드 중 아래의 코드를 찾아서

    $date = date('Ymd000000', current_time('timestamp')); // 오늘 0시 기준

    아래의 코드로 교체해보시겠어요?

    $date = date('YmdHis', strtotime('-1 day', current_time('timestamp')));

    고맙습니다.

  • 감사합니다!!

     

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기