그누보드 전체 새글 페이지(new.php) 특정 게시판 출력 제외 방법
페이지 정보

본문
그누보드 전체 최신글(새글) 페이지인 bbs/new.php에서 특정 게시판의 글을 제외하고 출력하는 SQL 쿼리 수정 방법을 제공합니다.
그누보드 전체 새글 페이지(new.php) 특정 게시판 출력 제외 방법
전체 최근게시물이 출력되는 새글 페이지에서 전체 검색 기능은 유지한 채 특정 게시판의 글만 제외하려면 /bbs/new.php 파일의 SQL 쿼리를 수정해야 합니다.
1. 수정 파일 위치
/bbs/new.php
2. SQL 쿼리 수정 방법
수정 전 반드시 /bbs/new.php 파일을 백업하십시오. 파일 내에서 $sql_common 변수가 정의된 아래 코드를 찾습니다.
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
위 코드 바로 아래에 not in 조건을 추가하여 제외할 게시판 ID를 지정합니다.
$sql_common.= " and a.bo_table not in ('notice', 'gallery') "; // 공지사항과 갤러리 게시판은 제외
'notice', 'gallery'부분에 최신글 목록에서 제외할 실제 게시판 ID를 입력합니다.- 게시판 설정에서 '검색 사용'을 체크 해제하면 전체 검색에서도 제외되지만, 위와 같이 쿼리를 수정하면 전체 검색 기능은 유지하면서 최신글(new.php) 목록에서만 특정 게시판을 제외할 수 있습니다.
전체 새글 페이지에서 특정 게시판 제외하기
그누보드 5.x 버전의 전체 최신글(새글) 페이지인 /bbs/new.php에서 특정 게시판의 글을 출력 목록에서 제외하려면 SQL 쿼리문에 not in 조건을 추가해야 합니다.
1. 수정 파일 위치
/bbs/new.php
2. 코드 수정 방법
/bbs/new.php 파일 내에서 $sql_common 변수가 정의된 아래 코드를 찾습니다.
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
위 코드 바로 아래에 제외할 게시판의 고유 아이디(bo_table)를 지정하는 아래의 코드를 추가합니다.
$sql_common.= " and a.bo_table not in ('notice', 'gallery') "; // 공지사항과 갤러리 게시판은 제외
3. 입력 형식 및 주의사항
- 형식:
not in ('게시판ID1', '게시판ID2')형태로 작은따옴표로 감싸고 쉼표로 구분하여 입력합니다. - 게시판 ID 확인: 관리자 페이지의 [게시판 관리] 메뉴에서 각 게시판의 '테이블명(bo_table)' 항목을 확인하십시오.
게시판 설정 검색 사용 체크 해제와 SQL 쿼리 수정의 차이
그누보드에서 특정 게시판을 최신글 목록에서 제외할 때 사용하는 두 가지 방법은 적용 범위와 결과에서 차이가 있습니다.
1. 게시판 관리에서 검색 사용 체크 해제
- 작동 방식: 관리자 페이지의 게시판 설정에서 해당 게시판의 검색 사용 여부를 해제합니다.
- 결과: 최신글(새글 페이지) 목록에서 제외될 뿐만 아니라, 사이트 전체 검색 결과에서도 해당 게시판의 글이 출력되지 않습니다.
2. bbs/new.php SQL 쿼리 수정 (not in 조건 추가)
- 작동 방식:
/bbs/new.php파일의 기본 쿼리($sql_common) 바로 아래에and a.bo_table not in ('notice', 'gallery')와 같은 제외 조건을 추가합니다. - 결과: 전체 검색 기능은 정상적으로 유지하면서, 전체 최신글(새글 페이지) 목록에서만 특정 게시판의 글을 제외할 수 있습니다.
메인화면(index.php) 최신글 목록에서 특정 게시판을 제외하는 방법
새글 페이지(bbs/new.php)에서 특정 게시판을 제외하는 방식과 유사하게, 메인화면 최신글 영역(index.php)에서도 SQL 쿼리에 not in 조건을 추가하여 특정 게시판을 제외할 수 있습니다. 단, 수정하는 파일과 쿼리문의 구조는 new.php와 차이가 있습니다.
1. 수정 파일 및 위치
- 수정 파일:
index.php - 확인할 코드:
//최신글주석 근처의 최신글 추출 SQL 쿼리문
2. SQL 쿼리 수정 방법
index.php 파일을 에디터로 열어 최신글 추출 쿼리에서 where 조건절에 not in 항목을 추가합니다.
$sql = " select bo_table from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id) where a.bo_device <> 'mobile' and bo_table not in ('notice') ";
- 여러 개의 게시판을 제외하려면 괄호 안에 쉼표로 구분하여 게시판 ID를 추가합니다.
- 예:
$sql.= " and a.bo_table not in ('notice', 'gallery', 'schedule') ";
- 예:
3. 주의사항
- 정확한 게시판 ID를 입력해야 정상적으로 제외됩니다.
- 코드를 수정하기 전에 원본 파일을 반드시 백업하시기 바랍니다.
상황별 선택 가이드
- 전체 검색은 유지하고 새글(new.php) 목록에서만 제외할 때
- 선택 기준: 사이트 내 검색 기능은 그대로 두어야 하는 경우
- 다음 행동:
/bbs/new.php파일을 열어$sql_common변수 하단에and a.bo_table not in ('게시판ID')조건을 추가합니다.
- 사이트 전체 검색에서도 해당 게시판을 완전히 제외할 때
- 선택 기준: 검색 결과에도 노출되지 않아야 하는 경우
- 다음 행동: 관리자 페이지의 [게시판 관리]에서 해당 게시판의 '검색 사용' 설정을 체크 해제합니다.
Q. 여러 게시판을 한꺼번에 제외하려면 어떻게 하나요?
not in ('id1', 'id2', 'id3')와 같이 쉼표로 구분하여 게시판 ID를 나열하면 됩니다.
Q. 수정 후 주의할 점은 무엇인가요?
/bbs/new.php는 코어 파일이므로 그누보드 업데이트 시 수정 내용이 초기화될 수 있습니다. 수정 전 반드시 원본 파일을 백업하십시오.
함께 보면 좋은 글
- 그누보드 새글(new.php) 페이지 스킨 아이콘 출력 및 커스터마이징 방법
- 그누보드 특정 게시판 글 삭제 시 포인트 반환 제외 설정 방법
- 그누보드 메인 페이지 최신글에서 특정 게시판 제외하는 방법
참고자료
기타 참고자료
- 이전글그누보드 특정 메뉴 색상 및 스타일 개별 커스터마이징 방법 26.10.01
- 다음글그누보드 게시판 페이지 타이틀 및 홈페이지 제목 수정 방법 26.10.01
댓글목록
등록된 댓글이 없습니다.