공지글 등록순서가 아닌, 등록일 순으로 변경하기 정보
공지글 등록순서가 아닌, 등록일 순으로 변경하기본문
게시물 출력순서는 게시판 설정에서 bo_sort_field 값을 조정하면됩니다만,
공지사항에는 적용되지 않습니다. 공지사항은 등록된 순서를 기준으로 항상 출력되는 것 같더라구요.저 처럼 공지사항을 최신글(wr_datetime) 순서로 보고 싶으신 분은 아래 방법을 사용하셔도 됩니다.
1. 소스코드 찾기
- bbs/list.php
// 공지 처리
if (!$is_search_bbs) {
$arr_notice = explode(',', trim($board['bo_notice']));
$from_notice_idx = ($page - 1) * $page_rows;
if($from_notice_idx < 0)
$from_notice_idx = 0;
$board_notice_count = count($arr_notice);
for ($k=0; $k<$board_notice_count; $k++) {
if (trim($arr_notice[$k]) == '') continue;
$row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");
if (!$row['wr_id']) continue;
$notice_array[] = $row['wr_id'];
if($k < $from_notice_idx) continue;
$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
$list[$i]['is_notice'] = true;
$i++;
$notice_count++;
if($notice_count >= $list_page_rows)
break;
}
}
2. 위의 내용 바로 아래에 적기
// 공지사항 날짜순으로 재정렬
usort($list, function($b, $a) {
return $a['wr_datetime'] - $b['wr_datetime'];
});
이 코드를 넣어주시면 됩니다. 그러면 공지 순서가 최신글이 위쪽에 보이도록 나옵니다.
게시물을 담는 $list 배열에 일반글 보다 공지사항 글부터 먼저 정리가 되는데, 이 타이밍에 wr_datetime 배열값을 기준으로 재정렬해 놓는 방법입니다.
common.php 에서 $board['bo_notice'] 변수를 get_board_db 함수로 정리할 때, 하려고보니까 mysql 쿼리문을 계속 날려야겠어서 그냥 $list 정리 할 때 배열변수를 재정렬 하는 방법으로 처리했는데.. 더 좋은 방법 아시는 분 알려주세요! ^_^!-->!-->
추천
7
7
댓글 3개
감사합니다~~
유용한 정보 감사합니다.
좋은 정보 감사합니다.