그누보드 여분필드 사용법: 추가, 출력, 활용 팁 > 그누보드테마로 SEO 최적화 적용된 홈페이지제작 - 티로그몰

profile_image
작성자 티로그
작성일Updated on: 2025-02-18 11:12:22

그누보드 여분필드 사용법: 추가, 출력, 활용 팁

그누보드 여분필드 사용법: 추가, 출력, 활용 팁

아래 내용은 그누보드 여분필드를 처음 접하는 분도 쉽게 따라 할 수 있도록 단계별로 자세히 설명한 튜토리얼입니다.
글쓰기 폼 수정, 데이터베이스 필드 추가, 실제 코드 예제까지 모두 포함하였으니 참고해보세요.


1. 그누보드에서 여분필드(Extra Field)란?

여분필드그누보드 게시판 테이블(`g5_write_게시판이름`)에 기본으로 존재하는 wr_1 ~ wr_10 필드를 말합니다.
기본 게시판 기능으로는 제목(wr_subject), 내용(wr_content) 등을 입력받을 수 있지만, 추가적인 정보를 입력받고 싶을 때 이 여분필드를 이용하면 편리합니다.

✅ 어떤 때 여분필드를 사용할까?

  • 회원의 전화번호, 주소, 회사명추가 정보를 저장해야 할 때
  • 게시판별로 별도 입력 필드(체크박스, 라디오 버튼 등) 가 필요할 때
  • 여러 맞춤형 게시판을 제작할 때(예: 구인/구직 게시판, 프로젝트 게시판 등)

2. 그누보드 여분필드 추가 방법

2.1. 관리자 설정에서 여분필드 추가하기

  1. 그누보드 관리자 페이지에 로그인
  2. 좌측 메뉴에서 [게시판 관리] → [게시판 설정]으로 이동
  3. 원하는 게시판(예: board)을 찾아 수정 버튼 클릭
  4. 하단으로 스크롤하여 "여분 필드 설정" 항목을 찾기
  5. wr_1 ~ wr_10 중 사용할 필드를 골라 설명(필드의 의미)를 적어주기
  6. 예) wr_1: 전화번호
  7. 저장 버튼 클릭

Tip: 이미 다른 여분필드를 사용 중이라면, 그 필드가 겹치지 않도록 주의하세요!

2.2. 데이터베이스에서 직접 필드 추가하기

기본적으로 그누보드는 wr_1 ~ wr_10까지 10개의 여분필드를 제공하지만, 이 10개마저도 부족할 경우가 있습니다. 그런 경우 데이터베이스 테이블에 새로운 필드를 추가하여 확장 가능합니다.

직접 DB에 필드 추가하기 (phpMyAdmin 기준)

  1. phpMyAdmin 또는 MySQL 클라이언트에 접속
  2. 그누보드용 데이터베이스를 선택
  3. 게시판 테이블(g5_write_게시판이름)을 찾는다. (예: g5_write_board)
  4. 구조(Structure) 탭에서 새 칼럼(Column) 추가
  5. 적절한 데이터 타입을 지정 (예: VARCHAR(255), INT 등)
  6. 저장

아래는 SQL로 필드를 추가하는 예시입니다.

ALTER TABLE `g5_write_board`
    ADD `wr_extra` VARCHAR(255) NOT NULL;
  • g5_write_board: 수정하려는 게시판 테이블명
  • wr_extra: 새로 추가할 필드명 (자유롭게 작명 가능)
  • VARCHAR(255): 데이터 타입 및 크기

주의: 추가로 생성한 필드는 그누보드 기본 관리 화면에서는 보이지 않으므로, 폼 수정 및 값 저장 시 직접 코드를 수정해야 합니다.


3. 여분필드 값 출력하기

3.1. 게시글 목록(리스트)에서 여분필드 출력

  1. 게시판 목록 파일 (list.skin.php 또는 list.php)에서 $list[$i]['wr_번호'] 형태로 값을 불러올 수 있습니다.
  2. 예시:
<!-- 게시판 리스트를 루프 돌며 출력하는 부분 -->
<?php for ($i=0; $i<count($list); $i++) { ?>
    <tr>
        <td><?php echo $list[$i]['wr_subject']; ?></td>
        <td><?php echo $list[$i]['wr_name']; ?></td>
        <!-- 여분필드 wr_1 출력 -->
        <td><?php echo $list[$i]['wr_1']; ?></td>
    </tr>
<?php } ?>

이렇게 하면 게시글 목록에서 각 글의 wr_1 값이 표시됩니다.

3.2. 게시글 본문(뷰)에서 여분필드 출력

  1. 게시글 본문 파일 (view.skin.php 또는 view.php)에서 $write['wr_번호'] 형태로 값을 불러옵니다.
  2. 예시:
<!-- 게시글 제목, 내용 등의 기본 정보 출력 부분 -->
<h1><?php echo $view['subject']; ?></h1>
<p><?php echo $view['content']; ?></p>

<!-- 여분필드 wr_2 출력 -->
<p>회사명: <?php echo $write['wr_2']; ?></p>

$write['wr_2'] 또는 $view['wr_2'] 둘 다 사용 가능하나, 스킨별로 변수 설정 방식이 다를 수 있으므로, $write 혹은 $view 중 어떤 배열로 제공되는지 확인 후 사용하세요.


4. 글쓰기 폼에 여분필드 추가하기

4.1. 기본 글쓰기 폼 수정 (write.skin.php)

글쓰기(또는 수정) 시 사용자가 입력한 여분필드를 받으려면 write.skin.php 파일에서 입력 폼을 추가해야 합니다.

아래는 다양한 입력 타입별 예시입니다.

<!-- wr_1: 일반 텍스트 입력 -->
<tr>
    <th scope="row">전화번호</th>
    <td>
        <input type="text" name="wr_1" value="<?php echo get_text($write['wr_1']); ?>">
    </td>
</tr>

<!-- wr_2: 체크박스 예시 -->
<tr>
    <th scope="row">옵션 선택</th>
    <td>
        <input type="checkbox" name="wr_2[]" value="옵션1"
            <?php if(strpos($write['wr_2'], '옵션1') !== false) echo "checked"; ?>> 옵션1
        <input type="checkbox" name="wr_2[]" value="옵션2"
            <?php if(strpos($write['wr_2'], '옵션2') !== false) echo "checked"; ?>> 옵션2
    </td>
</tr>

<!-- wr_3: 라디오 버튼 예시 -->
<tr>
    <th scope="row">성별</th>
    <td>
        <input type="radio" name="wr_3" value="남성"
            <?php if($write['wr_3'] == '남성') echo "checked"; ?>> 남성
        <input type="radio" name="wr_3" value="여성"
            <?php if($write['wr_3'] == '여성') echo "checked"; ?>> 여성
    </td>
</tr>

<!-- wr_4: 셀렉트 박스 예시 -->
<tr>
    <th scope="row">분류 선택</th>
    <td>
        <select name="wr_4">
            <option value="카테고리1" <?php if($write['wr_4'] == '카테고리1') echo "selected"; ?>>카테고리1</option>
            <option value="카테고리2" <?php if($write['wr_4'] == '카테고리2') echo "selected"; ?>>카테고리2</option>
        </select>
    </td>
</tr>

<!-- wr_5: 날짜 입력 -->
<tr>
    <th scope="row">시작 날짜</th>
    <td>
        <input type="date" name="wr_5" value="<?php echo $write['wr_5']; ?>">
    </td>
</tr>

<!-- wr_6: 파일 업로드 -->
<tr>
    <th scope="row">첨부 파일</th>
    <td>
        <input type="file" name="wr_6">
        <!-- 이미 업로드된 파일이 있을 경우 표시 -->
        <?php if($write['wr_6']) { ?>
            <p>현재 파일: <?php echo $write['wr_6']; ?></p>
        <?php } ?>
    </td>
</tr>

중요: 파일 업로드 필드(wr_6 등)를 사용하려면, 그누보드 기본 파일 업로드 로직과 충돌되지 않도록 별도 로직이 필요할 수 있습니다. 기본 게시판에서 제공하는 파일첨부 기능과 혼동되지 않도록 주의하세요.


5. 여분필드 값 저장하기

5.1. 기본적으로 그누보드에서 자동 저장

write.skin.php에서 name="wr_1"과 같이 여분필드를 추가했다면, 그누보드의 기본 로직(write_update.php)에서 자동으로 wr_1 ~ wr_10에 대한 DB 저장을 처리해줍니다.
즉, 기본 여분필드는 특별한 추가 코드 수정 없이도 자동으로 저장됩니다.

// (참고) write_update.php 내 일부 로직
// ... 생략 ...
$wr_1 = $_POST['wr_1'];
$wr_2 = $_POST['wr_2'];
// ... 생략 ...
$sql = " update `{$write_table}`
            set wr_subject = '$wr_subject',
                wr_content = '$wr_content',
                wr_1 = '$wr_1',
                wr_2 = '$wr_2',
                ...
        where wr_id = '$wr_id' ";
// ... 생략 ...

따라서 wr_1 ~ wr_10 필드만 사용하는 경우에는 write_update.php를 수정하지 않아도 자동으로 저장됩니다.


5.2. 새로 추가한 필드를 저장하려면?

직접 DB에 새로운 필드(wr_extra 등)를 추가했다면, 기본 게시판 로직에선 해당 필드를 저장하지 않습니다.
이 경우, write_update.php플러그인 형식(함수나 테마 내 hook)에 추가 코드를 넣어야 합니다.

아래는 예시 코드입니다.

// write_update.php의 글 저장 부분(예시)
// 일반적인 그누보드 구조를 기반으로 설명합니다.

// 1) GET, POST 값 가져오기
$wr_extra = isset($_POST['wr_extra']) ? trim($_POST['wr_extra']) : "";

// 2) SQL 구문에 wr_extra 반영
$sql = " update `{$write_table}`
            set wr_subject = '$wr_subject',
                wr_content = '$wr_content',
                wr_extra   = '$wr_extra',  /* 새로 추가한 필드 */
                wr_ip      = '$remote_addr'
         where wr_id = '$wr_id' ";
sql_query($sql);

참고: wr_extra 필드를 글쓰기/수정 폼에도 추가해야 합니다. 예) <input type="text" name="wr_extra" ...>


6. 여분필드를 활용한 맞춤형 게시판 예시

6.1. "전화번호" 필드를 추가하는 간단 예시

  1. 관리자에서 wr_1의 라벨 지정 - [게시판 관리] → [게시판 설정]으로 이동 후, 여분필드 wr_1전화번호로 적어둡니다. (라벨 역할)
  2. 글쓰기 폼(write.skin.php) 수정
<tr>
    <th scope="row">전화번호</th>
    <td>
        <input type="text" name="wr_1" value="<?php echo get_text($write['wr_1']); ?>">
    </td>
</tr>
  1. 게시글 본문(view.skin.php)에서 출력
<?php
echo "작성자 전화번호: " . $write['wr_1'];
?>

완료!
이제 글 작성 시, 사용자가 입력한 전화번호가 DB에 자동 저장되고, 본문에서도 확인 가능합니다.


6.2. 체크박스/라디오 등 복잡한 입력 예시

  1. 체크박스 입력 (관리자에서 wr_2관심사로 설정)
<!-- write.skin.php -->
<tr>
    <th scope="row">관심사</th>
    <td>
        <input type="checkbox" name="wr_2[]" value="스포츠"
            <?php if(strpos($write['wr_2'], '스포츠') !== false) echo "checked"; ?>> 스포츠
        <input type="checkbox" name="wr_2[]" value="음악"
            <?php if(strpos($write['wr_2'], '음악') !== false) echo "checked"; ?>> 음악
        <input type="checkbox" name="wr_2[]" value="여행"
            <?php if(strpos($write['wr_2'], '여행') !== false) echo "checked"; ?>> 여행
    </td>
</tr>
  1. 값 저장 로직
    • 체크박스는 배열로 전달되므로, 문자열로 합치거나 처리해야 합니다.
    • 그누보드 기본 write_update.php에서는 체크박스를 콤마로 구분하거나, PHP 배열로 implode() 하여 저장하는 방식을 사용합니다.
// write.skin.php
// <input type="checkbox" name="wr_2[]" value="스포츠">
//
// write_update.php
if (is_array($_POST['wr_2'])) {
    $wr_2 = implode(',', $_POST['wr_2']);
} else {
    $wr_2 = $_POST['wr_2'];
}

// 이후 wr_2 필드에 $wr_2값 저장
  1. 출력할 때(view.skin.php)
<?php
$interest_arr = explode(',', $write['wr_2']);
foreach($interest_arr as $interest) {
    echo "<span>{$interest}</span> ";
}
?>

7. 자주 묻는 질문 (FAQ)

  1. Q. 여분필드 wr_1~wr_10을 넘어서는 필드는 어떻게 추가하나요?
    A. DB 테이블(g5_write_board)에 직접 필드를 추가하고, write_update.php에서 수동으로 처리해야 합니다.
  2. Q. 여분필드는 꼭 관리자 설정에서 활성화해야 하나요?
    A. 관리자에서 라벨(필드명 설명)을 입력하면 편리하지만, 꼭 입력하지 않아도 wr_1~wr_10은 작동합니다.
  3. Q. 관리자에서 wr_1~wr_10을 다 설정해도 스킨에 폼이 없으면 저장이 안 되나요?
    A. 스킨에 <input> 또는 <textarea> 등이 있어야 사용자가 입력할 수 있습니다. 폼이 없다면 사용자 입력 자체가 없으므로 DB에 저장될 값이 없음을 유의하세요.
  4. Q. 체크박스, 라디오 등 다양한 입력 방식을 동시에 쓰고 싶어요.
    A. wr_1 ~ wr_10각 필드를 적절히 분배하여 사용하고, write.skin.php에서 맞춤형 폼을 만들면 됩니다.

8. 정리 및 마무리

  • 그누보드 여분필드wr_1 ~ wr_10까지 기본 제공됩니다.
  • 관리자 설정에서 필드 이름(라벨)을 지정하면 스킨 수정 시에 헷갈리지 않게 됩니다.
  • 글쓰기 스킨(write.skin.php)에 원하는 입력 폼을 추가하면 자동으로 DB에 저장됩니다. (단, wr_1~wr_10 범위 내)
  • 보다 많은 필드가 필요하다면, 데이터베이스에 직접 필드를 추가하고 write_update.php 등에 저장 로직을 추가하세요.

여분필드를 잘 활용하면, 별도의 플러그인이나 추가 개발 없이도 여러 가지 맞춤형 기능을 간단히 구현할 수 있습니다.


9. 추가 참고 자료


이상으로 그누보드 여분필드를 활용하는 방법을 초보자도 쉽게 따라 할 수 있도록 설명해 보았습니다.
게시판 확장이 필요할 때 가장 먼저 고려해볼 수 있는 방법이니, 직접 시도해보시고 궁금한 점이 있으면 공식 커뮤니티나 관련 매뉴얼을 참고해보세요.

즐거운 그누보드 개발 되시길 바랍니다!

티로그몰 그누보드 테마 구입 절차

저렴한 비용으로 직접 홈페이지를 만들고자 하시는 분께 적합니다.

구매 전 체크사항

설치방법

본인의 웹호스팅 계정을 이용하여 사용합니다.

A/S 정책

홈페이지 오류 및 버그 발견시 1:1문의를 남겨주시면 확인 후 바로 무상 처리해드립니다.

환불정책

다운받는 홈페이지라는 특성상 단순변심으로 인한 환불은 불가합니다.

라이센스 규정

사진 및 컨텐츠는 사용자의 이해를 돕기위해 사용된것이며 실사용은 가능하나 재배포를 금지합니다.

1도메인당 1카피를 원칙으로 하고있습니다.

설치대행 및 호스팅(계정)이전 규정

티로그 호스팅 이용시 공급원가(800,000 원)로 구매를 하실수도 있습니다.

설치대행의 경우 기본 셋팅비 10,000원 이며 디자인 변경 요청시 추가금액이 발생될 수 있습니다.

티로그웹호스팅 만료시 사용하신 홈페이지 ,도메인은(는) 영구 삭제 되며, 타사 호스팅 이용시 공급원가(800,000 원) - 제공가격(400,000 원) 의 나머지 금액을 지불 하여야합니다.

 
홈페이지 오류 수정요청시 홈페이지 디자인 변경 요청시
무료수정 별도협의
  • 기존 5.4버전을 쓰시는 분들께서는 계정 내 데이터를 모두 지우고 반드시 그누보드 5.6버전에서 새로 설치하셔야 합니다. (5.3에서 설치금지, 5.5~5.6기반 테마)
  • theme폴더에 다운받은 압축파일 내 테마를 넣어주세요 (폴더안에 폴더가 있으니 주의해주세요)
  • 기본적으로 컨텐츠 제작에 관한건 티로그가 관여하지 않습니다. (요청시 비용 별도협의)
  • 무통장 입금시 세금계산서 발행은 부가세10% 별로로 고객님측에서 부담하셔야 합니다.
[개인정처리방침]